diff --git a/packages/evm/evmtest/ERC20Basic.bin b/packages/evm/evmtest/ERC20Basic.bin index 33ab3ecf2e..065bfa2664 100644 --- a/packages/evm/evmtest/ERC20Basic.bin +++ b/packages/evm/evmtest/ERC20Basic.bin @@ -1 +1 @@ -608060405234801561000f575f80fd5b506040516113c13803806113c183398181016040528101906100319190610272565b815f908161003f91906104f5565b50806001908161004f91906104f5565b50601260ff16600a6100619190610720565b606461006d919061076a565b60048190555060045460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405161011691906107ba565b60405180910390a350506107d3565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101848261013e565b810181811067ffffffffffffffff821117156101a3576101a261014e565b5b80604052505050565b5f6101b5610125565b90506101c1828261017b565b919050565b5f67ffffffffffffffff8211156101e0576101df61014e565b5b6101e98261013e565b9050602081019050919050565b8281835e5f83830152505050565b5f610216610211846101c6565b6101ac565b9050828152602081018484840111156102325761023161013a565b5b61023d8482856101f6565b509392505050565b5f82601f83011261025957610258610136565b5b8151610269848260208601610204565b91505092915050565b5f80604083850312156102885761028761012e565b5b5f83015167ffffffffffffffff8111156102a5576102a4610132565b5b6102b185828601610245565b925050602083015167ffffffffffffffff8111156102d2576102d1610132565b5b6102de85828601610245565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061033657607f821691505b602082108103610349576103486102f2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610370565b6103b58683610370565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103f96103f46103ef846103cd565b6103d6565b6103cd565b9050919050565b5f819050919050565b610412836103df565b61042661041e82610400565b84845461037c565b825550505050565b5f90565b61043a61042e565b610445818484610409565b505050565b5b818110156104685761045d5f82610432565b60018101905061044b565b5050565b601f8211156104ad5761047e8161034f565b61048784610361565b81016020851015610496578190505b6104aa6104a285610361565b83018261044a565b50505b505050565b5f82821c905092915050565b5f6104cd5f19846008026104b2565b1980831691505092915050565b5f6104e583836104be565b9150826002028217905092915050565b6104fe826102e8565b67ffffffffffffffff8111156105175761051661014e565b5b610521825461031f565b61052c82828561046c565b5f60209050601f83116001811461055d575f841561054b578287015190505b61055585826104da565b8655506105bc565b601f19841661056b8661034f565b5f5b828110156105925784890151825560018201915060208501945060208101905061056d565b868310156105af57848901516105ab601f8916826104be565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561064657808604811115610622576106216105c4565b5b60018516156106315780820291505b808102905061063f856105f1565b9450610606565b94509492505050565b5f8261065e5760019050610719565b8161066b575f9050610719565b8160018114610681576002811461068b576106ba565b6001915050610719565b60ff84111561069d5761069c6105c4565b5b8360020a9150848211156106b4576106b36105c4565b5b50610719565b5060208310610133831016604e8410600b84101617156106ef5782820a9050838111156106ea576106e96105c4565b5b610719565b6106fc84848460016105fd565b92509050818404811115610713576107126105c4565b5b81810290505b9392505050565b5f61072a826103cd565b9150610735836103cd565b92506107627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461064f565b905092915050565b5f610774826103cd565b915061077f836103cd565b925082820261078d816103cd565b915082820484148315176107a4576107a36105c4565b5b5092915050565b6107b4816103cd565b82525050565b5f6020820190506107cd5f8301846107ab565b92915050565b610be1806107e05f395ff3fe608060405234801561000f575f80fd5b506004361061007b575f3560e01c8063313ce56711610059578063313ce567146100fd57806370a082311461011b578063a9059cbb1461014b578063dd62ed3e1461017b5761007b565b8063095ea7b31461007f57806318160ddd146100af57806323b872dd146100cd575b5f80fd5b61009960048036038101906100949190610965565b6101ab565b6040516100a691906109bd565b60405180910390f35b6100b7610298565b6040516100c491906109e5565b60405180910390f35b6100e760048036038101906100e291906109fe565b6102a1565b6040516100f491906109bd565b60405180910390f35b6101056105ed565b6040516101129190610a69565b60405180910390f35b61013560048036038101906101309190610a82565b6105f2565b60405161014291906109e5565b60405180910390f35b61016560048036038101906101609190610965565b610638565b60405161017291906109bd565b60405180910390f35b61019560048036038101906101909190610aad565b610801565b6040516101a291906109e5565b60405180910390f35b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161028691906109e5565b60405180910390a36001905092915050565b5f600454905090565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156102eb575f80fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561036f575f80fd5b6103b660025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061047960035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061053c60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105da91906109e5565b60405180910390a3600190509392505050565b601281565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610682575f80fd5b6106c960025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061075160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ef91906109e5565b60405180910390a36001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8282111561089557610894610aeb565b5b81836108a19190610b45565b905092915050565b5f8082846108b79190610b78565b9050838110156108ca576108c9610aeb565b5b8091505092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f80fd5b50565b5f8135905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f80fd5b50565b5f8135905061095f8161093b565b92915050565b5f806040838503121561097b5761097a6108d4565b5b5f6109888582860161091e565b925050602061099985828601610951565b9150509250929050565b5f8115159050919050565b6109b7816109a3565b82525050565b5f6020820190506109d05f8301846109ae565b92915050565b6109df81610932565b82525050565b5f6020820190506109f85f8301846109d6565b92915050565b5f805f60608486031215610a1557610a146108d4565b5b5f610a228682870161091e565b9350506020610a338682870161091e565b9250506040610a4486828701610951565b9150509250925092565b5f60ff82169050919050565b610a6381610a4e565b82525050565b5f602082019050610a7c5f830184610a5a565b92915050565b5f60208284031215610a9757610a966108d4565b5b5f610aa48482850161091e565b91505092915050565b5f8060408385031215610ac357610ac26108d4565b5b5f610ad08582860161091e565b9250506020610ae18582860161091e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4f82610932565b9150610b5a83610932565b9250828203905081811115610b7257610b71610b18565b5b92915050565b5f610b8282610932565b9150610b8d83610932565b9250828201905080821115610ba557610ba4610b18565b5b9291505056fea26469706673582212209349ad16133ab562f8d734243250fdef093b7e710a7bf53e63348d1bc305cac164736f6c634300081a0033 \ No newline at end of file +608060405234801561000f575f5ffd5b506040516113c43803806113c483398181016040528101906100319190610272565b815f908161003f91906104f8565b50806001908161004f91906104f8565b50601260ff16600a6100619190610723565b606461006d919061076d565b60048190555060045460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405161011691906107bd565b60405180910390a350506107d6565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101848261013e565b810181811067ffffffffffffffff821117156101a3576101a261014e565b5b80604052505050565b5f6101b5610125565b90506101c1828261017b565b919050565b5f67ffffffffffffffff8211156101e0576101df61014e565b5b6101e98261013e565b9050602081019050919050565b8281835e5f83830152505050565b5f610216610211846101c6565b6101ac565b9050828152602081018484840111156102325761023161013a565b5b61023d8482856101f6565b509392505050565b5f82601f83011261025957610258610136565b5b8151610269848260208601610204565b91505092915050565b5f5f604083850312156102885761028761012e565b5b5f83015167ffffffffffffffff8111156102a5576102a4610132565b5b6102b185828601610245565b925050602083015167ffffffffffffffff8111156102d2576102d1610132565b5b6102de85828601610245565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061033657607f821691505b602082108103610349576103486102f2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610370565b6103b58683610370565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103f96103f46103ef846103cd565b6103d6565b6103cd565b9050919050565b5f819050919050565b610412836103df565b61042661041e82610400565b84845461037c565b825550505050565b5f5f905090565b61043d61042e565b610448818484610409565b505050565b5b8181101561046b576104605f82610435565b60018101905061044e565b5050565b601f8211156104b0576104818161034f565b61048a84610361565b81016020851015610499578190505b6104ad6104a585610361565b83018261044d565b50505b505050565b5f82821c905092915050565b5f6104d05f19846008026104b5565b1980831691505092915050565b5f6104e883836104c1565b9150826002028217905092915050565b610501826102e8565b67ffffffffffffffff81111561051a5761051961014e565b5b610524825461031f565b61052f82828561046f565b5f60209050601f831160018114610560575f841561054e578287015190505b61055885826104dd565b8655506105bf565b601f19841661056e8661034f565b5f5b8281101561059557848901518255600182019150602085019450602081019050610570565b868310156105b257848901516105ae601f8916826104c1565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561064957808604811115610625576106246105c7565b5b60018516156106345780820291505b8081029050610642856105f4565b9450610609565b94509492505050565b5f82610661576001905061071c565b8161066e575f905061071c565b8160018114610684576002811461068e576106bd565b600191505061071c565b60ff8411156106a05761069f6105c7565b5b8360020a9150848211156106b7576106b66105c7565b5b5061071c565b5060208310610133831016604e8410600b84101617156106f25782820a9050838111156106ed576106ec6105c7565b5b61071c565b6106ff8484846001610600565b92509050818404811115610716576107156105c7565b5b81810290505b9392505050565b5f61072d826103cd565b9150610738836103cd565b92506107657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610652565b905092915050565b5f610777826103cd565b9150610782836103cd565b9250828202610790816103cd565b915082820484148315176107a7576107a66105c7565b5b5092915050565b6107b7816103cd565b82525050565b5f6020820190506107d05f8301846107ae565b92915050565b610be1806107e35f395ff3fe608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063313ce56711610059578063313ce567146100fd57806370a082311461011b578063a9059cbb1461014b578063dd62ed3e1461017b5761007b565b8063095ea7b31461007f57806318160ddd146100af57806323b872dd146100cd575b5f5ffd5b61009960048036038101906100949190610965565b6101ab565b6040516100a691906109bd565b60405180910390f35b6100b7610298565b6040516100c491906109e5565b60405180910390f35b6100e760048036038101906100e291906109fe565b6102a1565b6040516100f491906109bd565b60405180910390f35b6101056105ed565b6040516101129190610a69565b60405180910390f35b61013560048036038101906101309190610a82565b6105f2565b60405161014291906109e5565b60405180910390f35b61016560048036038101906101609190610965565b610638565b60405161017291906109bd565b60405180910390f35b61019560048036038101906101909190610aad565b610801565b6040516101a291906109e5565b60405180910390f35b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161028691906109e5565b60405180910390a36001905092915050565b5f600454905090565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156102eb575f5ffd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561036f575f5ffd5b6103b660025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061047960035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061053c60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105da91906109e5565b60405180910390a3600190509392505050565b601281565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610682575f5ffd5b6106c960025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061075160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ef91906109e5565b60405180910390a36001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8282111561089557610894610aeb565b5b81836108a19190610b45565b905092915050565b5f5f82846108b79190610b78565b9050838110156108ca576108c9610aeb565b5b8091505092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f5ffd5b50565b5f8135905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f5ffd5b50565b5f8135905061095f8161093b565b92915050565b5f5f6040838503121561097b5761097a6108d4565b5b5f6109888582860161091e565b925050602061099985828601610951565b9150509250929050565b5f8115159050919050565b6109b7816109a3565b82525050565b5f6020820190506109d05f8301846109ae565b92915050565b6109df81610932565b82525050565b5f6020820190506109f85f8301846109d6565b92915050565b5f5f5f60608486031215610a1557610a146108d4565b5b5f610a228682870161091e565b9350506020610a338682870161091e565b9250506040610a4486828701610951565b9150509250925092565b5f60ff82169050919050565b610a6381610a4e565b82525050565b5f602082019050610a7c5f830184610a5a565b92915050565b5f60208284031215610a9757610a966108d4565b5b5f610aa48482850161091e565b91505092915050565b5f5f60408385031215610ac357610ac26108d4565b5b5f610ad08582860161091e565b9250506020610ae18582860161091e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4f82610932565b9150610b5a83610932565b9250828203905081811115610b7257610b71610b18565b5b92915050565b5f610b8282610932565b9150610b8d83610932565b9250828201905080821115610ba557610ba4610b18565b5b9291505056fea26469706673582212202ff2c85964de0ee80d2deb92b0866cffc639fa90f681ed1f1431288c98e6f5cb64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/ERC20Basic.bin-runtime b/packages/evm/evmtest/ERC20Basic.bin-runtime index 569dd879ab..5984fc7430 100644 --- a/packages/evm/evmtest/ERC20Basic.bin-runtime +++ b/packages/evm/evmtest/ERC20Basic.bin-runtime @@ -1 +1 @@ -608060405234801561000f575f80fd5b506004361061007b575f3560e01c8063313ce56711610059578063313ce567146100fd57806370a082311461011b578063a9059cbb1461014b578063dd62ed3e1461017b5761007b565b8063095ea7b31461007f57806318160ddd146100af57806323b872dd146100cd575b5f80fd5b61009960048036038101906100949190610965565b6101ab565b6040516100a691906109bd565b60405180910390f35b6100b7610298565b6040516100c491906109e5565b60405180910390f35b6100e760048036038101906100e291906109fe565b6102a1565b6040516100f491906109bd565b60405180910390f35b6101056105ed565b6040516101129190610a69565b60405180910390f35b61013560048036038101906101309190610a82565b6105f2565b60405161014291906109e5565b60405180910390f35b61016560048036038101906101609190610965565b610638565b60405161017291906109bd565b60405180910390f35b61019560048036038101906101909190610aad565b610801565b6040516101a291906109e5565b60405180910390f35b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161028691906109e5565b60405180910390a36001905092915050565b5f600454905090565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156102eb575f80fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561036f575f80fd5b6103b660025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061047960035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061053c60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105da91906109e5565b60405180910390a3600190509392505050565b601281565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610682575f80fd5b6106c960025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061075160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ef91906109e5565b60405180910390a36001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8282111561089557610894610aeb565b5b81836108a19190610b45565b905092915050565b5f8082846108b79190610b78565b9050838110156108ca576108c9610aeb565b5b8091505092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f80fd5b50565b5f8135905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f80fd5b50565b5f8135905061095f8161093b565b92915050565b5f806040838503121561097b5761097a6108d4565b5b5f6109888582860161091e565b925050602061099985828601610951565b9150509250929050565b5f8115159050919050565b6109b7816109a3565b82525050565b5f6020820190506109d05f8301846109ae565b92915050565b6109df81610932565b82525050565b5f6020820190506109f85f8301846109d6565b92915050565b5f805f60608486031215610a1557610a146108d4565b5b5f610a228682870161091e565b9350506020610a338682870161091e565b9250506040610a4486828701610951565b9150509250925092565b5f60ff82169050919050565b610a6381610a4e565b82525050565b5f602082019050610a7c5f830184610a5a565b92915050565b5f60208284031215610a9757610a966108d4565b5b5f610aa48482850161091e565b91505092915050565b5f8060408385031215610ac357610ac26108d4565b5b5f610ad08582860161091e565b9250506020610ae18582860161091e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4f82610932565b9150610b5a83610932565b9250828203905081811115610b7257610b71610b18565b5b92915050565b5f610b8282610932565b9150610b8d83610932565b9250828201905080821115610ba557610ba4610b18565b5b9291505056fea26469706673582212209349ad16133ab562f8d734243250fdef093b7e710a7bf53e63348d1bc305cac164736f6c634300081a0033 \ No newline at end of file +608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063313ce56711610059578063313ce567146100fd57806370a082311461011b578063a9059cbb1461014b578063dd62ed3e1461017b5761007b565b8063095ea7b31461007f57806318160ddd146100af57806323b872dd146100cd575b5f5ffd5b61009960048036038101906100949190610965565b6101ab565b6040516100a691906109bd565b60405180910390f35b6100b7610298565b6040516100c491906109e5565b60405180910390f35b6100e760048036038101906100e291906109fe565b6102a1565b6040516100f491906109bd565b60405180910390f35b6101056105ed565b6040516101129190610a69565b60405180910390f35b61013560048036038101906101309190610a82565b6105f2565b60405161014291906109e5565b60405180910390f35b61016560048036038101906101609190610965565b610638565b60405161017291906109bd565b60405180910390f35b61019560048036038101906101909190610aad565b610801565b6040516101a291906109e5565b60405180910390f35b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161028691906109e5565b60405180910390a36001905092915050565b5f600454905090565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156102eb575f5ffd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561036f575f5ffd5b6103b660025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061047960035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061053c60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105da91906109e5565b60405180910390a3600190509392505050565b601281565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610682575f5ffd5b6106c960025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061075160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ef91906109e5565b60405180910390a36001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8282111561089557610894610aeb565b5b81836108a19190610b45565b905092915050565b5f5f82846108b79190610b78565b9050838110156108ca576108c9610aeb565b5b8091505092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f5ffd5b50565b5f8135905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f5ffd5b50565b5f8135905061095f8161093b565b92915050565b5f5f6040838503121561097b5761097a6108d4565b5b5f6109888582860161091e565b925050602061099985828601610951565b9150509250929050565b5f8115159050919050565b6109b7816109a3565b82525050565b5f6020820190506109d05f8301846109ae565b92915050565b6109df81610932565b82525050565b5f6020820190506109f85f8301846109d6565b92915050565b5f5f5f60608486031215610a1557610a146108d4565b5b5f610a228682870161091e565b9350506020610a338682870161091e565b9250506040610a4486828701610951565b9150509250925092565b5f60ff82169050919050565b610a6381610a4e565b82525050565b5f602082019050610a7c5f830184610a5a565b92915050565b5f60208284031215610a9757610a966108d4565b5b5f610aa48482850161091e565b91505092915050565b5f5f60408385031215610ac357610ac26108d4565b5b5f610ad08582860161091e565b9250506020610ae18582860161091e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4f82610932565b9150610b5a83610932565b9250828203905081811115610b7257610b71610b18565b5b92915050565b5f610b8282610932565b9150610b8d83610932565b9250828201905080821115610ba557610ba4610b18565b5b9291505056fea26469706673582212202ff2c85964de0ee80d2deb92b0866cffc639fa90f681ed1f1431288c98e6f5cb64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/ERC20Example.bin b/packages/evm/evmtest/ERC20Example.bin index 71dc5ad81c..ce02507309 100644 --- a/packages/evm/evmtest/ERC20Example.bin +++ b/packages/evm/evmtest/ERC20Example.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b50610ce18061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634deefc5a1461004e578063afc1cf661461006a578063b231b87d14610086578063c066591e146100a2575b5f80fd5b61006860048036038101906100639190610498565b6100be565b005b610084600480360381019061007f9190610648565b61018a565b005b6100a0600480360381019061009b9190610498565b610229565b005b6100bc60048036038101906100b791906106e4565b6102c2565b005b6100c66103cf565b8281604001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367d52f6d8261010a85610397565b6040518363ffffffff1660e01b8152600401610127929190610a92565b6020604051808303815f875af1158015610143573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101679190610af9565b5f806101000a81548163ffffffff021916908363ffffffff160217905550505050565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f4f50c425f8054906101000a900463ffffffff168686866101d687610397565b6040518663ffffffff1660e01b81526004016101f6959493929190610b94565b5f604051808303815f87803b15801561020d575f80fd5b505af115801561021f573d5f803e3d5ffd5b5050505050505050565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638adfedc75f8054906101000a900463ffffffff168461027385610397565b6040518463ffffffff1660e01b815260040161029193929190610c09565b5f604051808303815f87803b1580156102a8575f80fd5b505af11580156102ba573d5f803e3d5ffd5b505050505050565b6102ca6103cf565b8281604001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634af8bc528787878561031188610397565b6040518663ffffffff1660e01b8152600401610331959493929190610c45565b6020604051808303815f875af115801561034d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103719190610af9565b5f806101000a81548163ffffffff021916908363ffffffff160217905550505050505050565b61039f6103ed565b6103a76103ed565b82815f019067ffffffffffffffff16908167ffffffffffffffff168152505080915050919050565b60405180606001604052805f81526020015f81526020015f81525090565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61043a81610428565b8114610444575f80fd5b50565b5f8135905061045581610431565b92915050565b5f67ffffffffffffffff82169050919050565b6104778161045b565b8114610481575f80fd5b50565b5f813590506104928161046e565b92915050565b5f80604083850312156104ae576104ad610420565b5b5f6104bb85828601610447565b92505060206104cc85828601610484565b9150509250929050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610524826104de565b810181811067ffffffffffffffff82111715610543576105426104ee565b5b80604052505050565b5f610555610417565b9050610561828261051b565b919050565b5f67ffffffffffffffff8211156105805761057f6104ee565b5b610589826104de565b9050602081019050919050565b828183375f83830152505050565b5f6105b66105b184610566565b61054c565b9050828152602081018484840111156105d2576105d16104da565b5b6105dd848285610596565b509392505050565b5f82601f8301126105f9576105f86104d6565b5b81356106098482602086016105a4565b91505092915050565b5f60ff82169050919050565b61062781610612565b8114610631575f80fd5b50565b5f813590506106428161061e565b92915050565b5f805f80608085870312156106605761065f610420565b5b5f85013567ffffffffffffffff81111561067d5761067c610424565b5b610689878288016105e5565b945050602085013567ffffffffffffffff8111156106aa576106a9610424565b5b6106b6878288016105e5565b93505060406106c787828801610634565b92505060606106d887828801610484565b91505092959194509250565b5f805f805f60a086880312156106fd576106fc610420565b5b5f86013567ffffffffffffffff81111561071a57610719610424565b5b610726888289016105e5565b955050602086013567ffffffffffffffff81111561074757610746610424565b5b610753888289016105e5565b945050604061076488828901610634565b935050606061077588828901610447565b925050608061078688828901610484565b9150509295509295909350565b61079c81610428565b82525050565b606082015f8201516107b65f850182610793565b5060208201516107c96020850182610793565b5060408201516107dc6040850182610793565b50505050565b6107eb8161045b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61084c8261081a565b6108568185610824565b9350610866818560208601610834565b61086f816104de565b840191505092915050565b5f602083015f8301518482035f8601526108948282610842565b9150508091505092915050565b5f604083015f8301518482035f8601526108bb828261087a565b91505060208301516108d06020860182610793565b508091505092915050565b5f6108e683836108a1565b905092915050565b5f602082019050919050565b5f610904826107f1565b61090e81856107fb565b9350836020820285016109208561080b565b805f5b8581101561095b578484038952815161093c85826108db565b9450610947836108ee565b925060208a01995050600181019050610923565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f6109a982610996565b9050919050565b6109b98161099f565b82525050565b5f6109ca83836109b0565b60208301905092915050565b5f602082019050919050565b5f6109ec8261096d565b6109f68185610977565b9350610a0183610987565b805f5b83811015610a31578151610a1888826109bf565b9750610a23836109d6565b925050600181019050610a04565b5085935050505092915050565b5f606083015f830151610a535f8601826107e2565b5060208301518482036020860152610a6b82826108fa565b91505060408301518482036040860152610a8582826109e2565b9150508091505092915050565b5f608082019050610aa55f8301856107a2565b8181036060830152610ab78184610a3e565b90509392505050565b5f63ffffffff82169050919050565b610ad881610ac0565b8114610ae2575f80fd5b50565b5f81519050610af381610acf565b92915050565b5f60208284031215610b0e57610b0d610420565b5b5f610b1b84828501610ae5565b91505092915050565b610b2d81610ac0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610b5782610b33565b610b618185610b3d565b9350610b71818560208601610834565b610b7a816104de565b840191505092915050565b610b8e81610612565b82525050565b5f60a082019050610ba75f830188610b24565b8181036020830152610bb98187610b4d565b90508181036040830152610bcd8186610b4d565b9050610bdc6060830185610b85565b8181036080830152610bee8184610a3e565b90509695505050505050565b610c0381610428565b82525050565b5f606082019050610c1c5f830186610b24565b610c296020830185610bfa565b8181036040830152610c3b8184610a3e565b9050949350505050565b5f60e0820190508181035f830152610c5d8188610b4d565b90508181036020830152610c718187610b4d565b9050610c806040830186610b85565b610c8d60608301856107a2565b81810360c0830152610c9f8184610a3e565b9050969550505050505056fea2646970667358221220fe0a0c0353c84c7ca7a1239e8c41186f9b5bf812bdd1483f44b15e6f4a5d4a2264736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b50610ce38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80634deefc5a1461004e578063afc1cf661461006a578063b231b87d14610086578063c066591e146100a2575b5f5ffd5b6100686004803603810190610063919061049a565b6100be565b005b610084600480360381019061007f919061064a565b61018a565b005b6100a0600480360381019061009b919061049a565b61022a565b005b6100bc60048036038101906100b791906106e6565b6102c4565b005b6100c66103d1565b8281604001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166367d52f6d8261010a85610399565b6040518363ffffffff1660e01b8152600401610127929190610a94565b6020604051808303815f875af1158015610143573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101679190610afb565b5f5f6101000a81548163ffffffff021916908363ffffffff160217905550505050565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f4f50c425f5f9054906101000a900463ffffffff168686866101d787610399565b6040518663ffffffff1660e01b81526004016101f7959493929190610b96565b5f604051808303815f87803b15801561020e575f5ffd5b505af1158015610220573d5f5f3e3d5ffd5b5050505050505050565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638adfedc75f5f9054906101000a900463ffffffff168461027585610399565b6040518463ffffffff1660e01b815260040161029393929190610c0b565b5f604051808303815f87803b1580156102aa575f5ffd5b505af11580156102bc573d5f5f3e3d5ffd5b505050505050565b6102cc6103d1565b8281604001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634af8bc528787878561031388610399565b6040518663ffffffff1660e01b8152600401610333959493929190610c47565b6020604051808303815f875af115801561034f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610afb565b5f5f6101000a81548163ffffffff021916908363ffffffff160217905550505050505050565b6103a16103ef565b6103a96103ef565b82815f019067ffffffffffffffff16908167ffffffffffffffff168152505080915050919050565b60405180606001604052805f81526020015f81526020015f81525090565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61043c8161042a565b8114610446575f5ffd5b50565b5f8135905061045781610433565b92915050565b5f67ffffffffffffffff82169050919050565b6104798161045d565b8114610483575f5ffd5b50565b5f8135905061049481610470565b92915050565b5f5f604083850312156104b0576104af610422565b5b5f6104bd85828601610449565b92505060206104ce85828601610486565b9150509250929050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610526826104e0565b810181811067ffffffffffffffff82111715610545576105446104f0565b5b80604052505050565b5f610557610419565b9050610563828261051d565b919050565b5f67ffffffffffffffff821115610582576105816104f0565b5b61058b826104e0565b9050602081019050919050565b828183375f83830152505050565b5f6105b86105b384610568565b61054e565b9050828152602081018484840111156105d4576105d36104dc565b5b6105df848285610598565b509392505050565b5f82601f8301126105fb576105fa6104d8565b5b813561060b8482602086016105a6565b91505092915050565b5f60ff82169050919050565b61062981610614565b8114610633575f5ffd5b50565b5f8135905061064481610620565b92915050565b5f5f5f5f6080858703121561066257610661610422565b5b5f85013567ffffffffffffffff81111561067f5761067e610426565b5b61068b878288016105e7565b945050602085013567ffffffffffffffff8111156106ac576106ab610426565b5b6106b8878288016105e7565b93505060406106c987828801610636565b92505060606106da87828801610486565b91505092959194509250565b5f5f5f5f5f60a086880312156106ff576106fe610422565b5b5f86013567ffffffffffffffff81111561071c5761071b610426565b5b610728888289016105e7565b955050602086013567ffffffffffffffff81111561074957610748610426565b5b610755888289016105e7565b945050604061076688828901610636565b935050606061077788828901610449565b925050608061078888828901610486565b9150509295509295909350565b61079e8161042a565b82525050565b606082015f8201516107b85f850182610795565b5060208201516107cb6020850182610795565b5060408201516107de6040850182610795565b50505050565b6107ed8161045d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61084e8261081c565b6108588185610826565b9350610868818560208601610836565b610871816104e0565b840191505092915050565b5f602083015f8301518482035f8601526108968282610844565b9150508091505092915050565b5f604083015f8301518482035f8601526108bd828261087c565b91505060208301516108d26020860182610795565b508091505092915050565b5f6108e883836108a3565b905092915050565b5f602082019050919050565b5f610906826107f3565b61091081856107fd565b9350836020820285016109228561080d565b805f5b8581101561095d578484038952815161093e85826108dd565b9450610949836108f0565b925060208a01995050600181019050610925565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f6109ab82610998565b9050919050565b6109bb816109a1565b82525050565b5f6109cc83836109b2565b60208301905092915050565b5f602082019050919050565b5f6109ee8261096f565b6109f88185610979565b9350610a0383610989565b805f5b83811015610a33578151610a1a88826109c1565b9750610a25836109d8565b925050600181019050610a06565b5085935050505092915050565b5f606083015f830151610a555f8601826107e4565b5060208301518482036020860152610a6d82826108fc565b91505060408301518482036040860152610a8782826109e4565b9150508091505092915050565b5f608082019050610aa75f8301856107a4565b8181036060830152610ab98184610a40565b90509392505050565b5f63ffffffff82169050919050565b610ada81610ac2565b8114610ae4575f5ffd5b50565b5f81519050610af581610ad1565b92915050565b5f60208284031215610b1057610b0f610422565b5b5f610b1d84828501610ae7565b91505092915050565b610b2f81610ac2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f610b5982610b35565b610b638185610b3f565b9350610b73818560208601610836565b610b7c816104e0565b840191505092915050565b610b9081610614565b82525050565b5f60a082019050610ba95f830188610b26565b8181036020830152610bbb8187610b4f565b90508181036040830152610bcf8186610b4f565b9050610bde6060830185610b87565b8181036080830152610bf08184610a40565b90509695505050505050565b610c058161042a565b82525050565b5f606082019050610c1e5f830186610b26565b610c2b6020830185610bfc565b8181036040830152610c3d8184610a40565b9050949350505050565b5f60e0820190508181035f830152610c5f8188610b4f565b90508181036020830152610c738187610b4f565b9050610c826040830186610b87565b610c8f60608301856107a4565b81810360c0830152610ca18184610a40565b9050969550505050505056fea264697066735822122007dbd15a587457a22e6f2241f9c9d85dd6acfc89398bc48dd5fc5c3ead1dd2b464736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/EndlessLoop.bin b/packages/evm/evmtest/EndlessLoop.bin index dddeca1339..6108a2ca55 100644 --- a/packages/evm/evmtest/EndlessLoop.bin +++ b/packages/evm/evmtest/EndlessLoop.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b50607080601a5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063a92100cb14602a575b5f80fd5b60306032565b005b5b600160335756fea26469706673582212205c8236a1cc784318af67a1ef8a54fa55f5d01bf759caffe2006e47a8ee6a96c664736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b50607080601a5f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063a92100cb14602a575b5f5ffd5b60306032565b005b5b600160335756fea2646970667358221220d937b6009a059adc6e83cae3546ee456b8fb5d5ac5057460247c571428919bdb64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/Fibonacci.bin b/packages/evm/evmtest/Fibonacci.bin index 8d60ddbe7c..f60bcc834d 100644 --- a/packages/evm/evmtest/Fibonacci.bin +++ b/packages/evm/evmtest/Fibonacci.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b5061032e8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f9b7c7e51461002d575b5f80fd5b610047600480360381019061004291906101cb565b61005d565b6040516100549190610205565b60405180910390f35b5f60018263ffffffff161161007457819050610189565b3073ffffffffffffffffffffffffffffffffffffffff1663f9b7c7e560028461009d919061024b565b6040518263ffffffff1660e01b81526004016100b99190610205565b602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f89190610296565b3073ffffffffffffffffffffffffffffffffffffffff1663f9b7c7e5600185610121919061024b565b6040518263ffffffff1660e01b815260040161013d9190610205565b602060405180830381865afa158015610158573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017c9190610296565b61018691906102c1565b90505b919050565b5f80fd5b5f63ffffffff82169050919050565b6101aa81610192565b81146101b4575f80fd5b50565b5f813590506101c5816101a1565b92915050565b5f602082840312156101e0576101df61018e565b5b5f6101ed848285016101b7565b91505092915050565b6101ff81610192565b82525050565b5f6020820190506102185f8301846101f6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61025582610192565b915061026083610192565b9250828203905063ffffffff81111561027c5761027b61021e565b5b92915050565b5f81519050610290816101a1565b92915050565b5f602082840312156102ab576102aa61018e565b5b5f6102b884828501610282565b91505092915050565b5f6102cb82610192565b91506102d683610192565b9250828201905063ffffffff8111156102f2576102f161021e565b5b9291505056fea2646970667358221220f2f698d0019e48e50d2df4438a740608f75a0604f5cdaca59e8d910f5666134264736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b5061032e8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f9b7c7e51461002d575b5f5ffd5b610047600480360381019061004291906101cb565b61005d565b6040516100549190610205565b60405180910390f35b5f60018263ffffffff161161007457819050610189565b3073ffffffffffffffffffffffffffffffffffffffff1663f9b7c7e560028461009d919061024b565b6040518263ffffffff1660e01b81526004016100b99190610205565b602060405180830381865afa1580156100d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f89190610296565b3073ffffffffffffffffffffffffffffffffffffffff1663f9b7c7e5600185610121919061024b565b6040518263ffffffff1660e01b815260040161013d9190610205565b602060405180830381865afa158015610158573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017c9190610296565b61018691906102c1565b90505b919050565b5f5ffd5b5f63ffffffff82169050919050565b6101aa81610192565b81146101b4575f5ffd5b50565b5f813590506101c5816101a1565b92915050565b5f602082840312156101e0576101df61018e565b5b5f6101ed848285016101b7565b91505092915050565b6101ff81610192565b82525050565b5f6020820190506102185f8301846101f6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61025582610192565b915061026083610192565b9250828203905063ffffffff81111561027c5761027b61021e565b5b92915050565b5f81519050610290816101a1565b92915050565b5f602082840312156102ab576102aa61018e565b5b5f6102b884828501610282565b91505092915050565b5f6102cb82610192565b91506102d683610192565b9250828201905063ffffffff8111156102f2576102f161021e565b5b9291505056fea264697066735822122042488dc569de14a03abe142ae29f81ace771243aa52e4ee4eb8e9ca8f654c64e64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/GasTestExecutionTime.bin b/packages/evm/evmtest/GasTestExecutionTime.bin index 78345d0ba2..5a3efdf2c9 100644 --- a/packages/evm/evmtest/GasTestExecutionTime.bin +++ b/packages/evm/evmtest/GasTestExecutionTime.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b506102898061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063af4e6e521461002d575b5f80fd5b61004760048036038101906100429190610103565b61005d565b604051610054919061013d565b60405180910390f35b5f805f90505f805b8463ffffffff168163ffffffff1610156100bb576001836100869190610183565b9250600a8361009591906101e7565b60036100a19190610217565b826100ac9190610183565b91508080600101915050610065565b508092505050919050565b5f80fd5b5f63ffffffff82169050919050565b6100e2816100ca565b81146100ec575f80fd5b50565b5f813590506100fd816100d9565b92915050565b5f60208284031215610118576101176100c6565b5b5f610125848285016100ef565b91505092915050565b610137816100ca565b82525050565b5f6020820190506101505f83018461012e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018d826100ca565b9150610198836100ca565b9250828201905063ffffffff8111156101b4576101b3610156565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6101f1826100ca565b91506101fc836100ca565b92508261020c5761020b6101ba565b5b828206905092915050565b5f610221826100ca565b915061022c836100ca565b925082820261023a816100ca565b915080821461024c5761024b610156565b5b509291505056fea2646970667358221220d6f86bfddaafd417e9f3afc06234d7b02305760ee584f78f13f8b1acd9880dcf64736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b5061028f8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063af4e6e521461002d575b5f5ffd5b61004760048036038101906100429190610109565b61005d565b6040516100549190610143565b60405180910390f35b5f5f5f90505f5f90505f5f90505b8463ffffffff168163ffffffff1610156100c15760018361008c9190610189565b9250600a8361009b91906101ed565b60036100a7919061021d565b826100b29190610189565b9150808060010191505061006b565b508092505050919050565b5f5ffd5b5f63ffffffff82169050919050565b6100e8816100d0565b81146100f2575f5ffd5b50565b5f81359050610103816100df565b92915050565b5f6020828403121561011e5761011d6100cc565b5b5f61012b848285016100f5565b91505092915050565b61013d816100d0565b82525050565b5f6020820190506101565f830184610134565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610193826100d0565b915061019e836100d0565b9250828201905063ffffffff8111156101ba576101b961015c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6101f7826100d0565b9150610202836100d0565b925082610212576102116101c0565b5b828206905092915050565b5f610227826100d0565b9150610232836100d0565b9250828202610240816100d0565b91508082146102525761025161015c565b5b509291505056fea2646970667358221220ff70596570fe9b5a15a154a0cc62d93399b61836c90b4546f9aafe3ea7125dae64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/GasTestMemory.bin b/packages/evm/evmtest/GasTestMemory.bin index 36f6d8e470..553e42dc43 100644 --- a/packages/evm/evmtest/GasTestMemory.bin +++ b/packages/evm/evmtest/GasTestMemory.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b506101ef8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063af4e6e521461002d575b5f80fd5b61004760048036038101906100429190610134565b610049565b005b5f8163ffffffff1667ffffffffffffffff81111561006a5761006961015f565b5b6040519080825280602002602001820160405280156100985781602001602082028036833780820191505090505b5090505f5b8263ffffffff168163ffffffff1610156100f25780828263ffffffff16815181106100cb576100ca61018c565b5b602002602001019063ffffffff16908163ffffffff1681525050808060010191505061009d565b505050565b5f80fd5b5f63ffffffff82169050919050565b610113816100fb565b811461011d575f80fd5b50565b5f8135905061012e8161010a565b92915050565b5f60208284031215610149576101486100f7565b5b5f61015684828501610120565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220f8387820bb5d099e4e5017b5a00c539dd3392166dfef5628ffa84ed72f4a412164736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b506101f28061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063af4e6e521461002d575b5f5ffd5b61004760048036038101906100429190610137565b610049565b005b5f8163ffffffff1667ffffffffffffffff81111561006a57610069610162565b5b6040519080825280602002602001820160405280156100985781602001602082028036833780820191505090505b5090505f5f90505b8263ffffffff168163ffffffff1610156100f55780828263ffffffff16815181106100ce576100cd61018f565b5b602002602001019063ffffffff16908163ffffffff168152505080806001019150506100a0565b505050565b5f5ffd5b5f63ffffffff82169050919050565b610116816100fe565b8114610120575f5ffd5b50565b5f813590506101318161010d565b92915050565b5f6020828403121561014c5761014b6100fa565b5b5f61015984828501610123565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122080ba7118b89169c89b0258bfcb92fa373e279f3573d33f2ba12efa1df8c2cda764736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/GasTestStorage.bin b/packages/evm/evmtest/GasTestStorage.bin index 5421fc7374..2c7486ee3f 100644 --- a/packages/evm/evmtest/GasTestStorage.bin +++ b/packages/evm/evmtest/GasTestStorage.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b506101598061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063af4e6e521461002d575b5f80fd5b610047600480360381019061004291906100f8565b610049565b005b5f5b8163ffffffff168163ffffffff1610156100b7575f81908060018154018082558091505060019003905f5260205f2090600891828204019190066004029091909190916101000a81548163ffffffff021916908363ffffffff160217905550808060010191505061004b565b5050565b5f80fd5b5f63ffffffff82169050919050565b6100d7816100bf565b81146100e1575f80fd5b50565b5f813590506100f2816100ce565b92915050565b5f6020828403121561010d5761010c6100bb565b5b5f61011a848285016100e4565b9150509291505056fea2646970667358221220bae1a9d62b4a95646c14a4d8fb76668e0839f906497beb4199d5510911a326fd64736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b5061015c8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063af4e6e521461002d575b5f5ffd5b610047600480360381019061004291906100fb565b610049565b005b5f5f90505b8163ffffffff168163ffffffff1610156100ba575f81908060018154018082558091505060019003905f5260205f2090600891828204019190066004029091909190916101000a81548163ffffffff021916908363ffffffff160217905550808060010191505061004e565b5050565b5f5ffd5b5f63ffffffff82169050919050565b6100da816100c2565b81146100e4575f5ffd5b50565b5f813590506100f5816100d1565b92915050565b5f602082840312156101105761010f6100be565b5b5f61011d848285016100e7565b9150509291505056fea26469706673582212200288cc5552d39115cad837e2b595c8cde325aa68c76cf2c0289622817ddc23c264736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/ISCTest.bin b/packages/evm/evmtest/ISCTest.bin index adf11f476f..0b3a488032 100644 --- a/packages/evm/evmtest/ISCTest.bin +++ b/packages/evm/evmtest/ISCTest.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b506156618061001c5f395ff3fe60806040526004361061019a575f3560e01c8063904b8870116100eb578063bcfb195911610089578063d411defb11610063578063d411defb14610426578063dc91b3d01461043c578063e29a58a314610466578063e6c75c6b1461047c5761019a565b8063bcfb1959146103c0578063c36ba856146103e8578063c5e69945146103fe5761019a565b8063a4a05e21116100c5578063a4a05e2114610354578063b3ee69421461036a578063bb21d92114610380578063bcaeb8a8146103965761019a565b8063904b8870146102fa5780639e1a00aa14610310578063a038a3e61461032c5761019a565b806346d1167611610158578063564b81ef11610132578063564b81ef1461027657806357c8750e146102a0578063687cf0ea146102c85780636a68a760146102e45761019a565b806346d116761461023457806346fc4bb11461024a5780634e522e4b146102605761019a565b8062b79f021461019e57806301fc2576146101ba57806314f710fe146101d657806336c34640146101e05780633772d53f146101f657806339bfb2fa1461020c575b5f80fd5b6101b860048036038101906101b391906131a8565b6104a4565b005b6101d460048036038101906101cf9190613289565b61095d565b005b6101de610b9e565b005b3480156101eb575f80fd5b506101f4610fcd565b005b348015610201575f80fd5b5061020a61108e565b005b348015610217575f80fd5b50610232600480360381019061022d919061334f565b61114c565b005b34801561023f575f80fd5b506102486111f7565b005b348015610255575f80fd5b5061025e6112b8565b005b34801561026b575f80fd5b506102746112f6565b005b348015610281575f80fd5b5061028a61132d565b60405161029791906133c8565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190613759565b6113b4565b005b6102e260048036038101906102dd91906137cf565b611636565b005b3480156102ef575f80fd5b506102f8611af1565b005b348015610305575f80fd5b5061030e611b2c565b005b61032a60048036038101906103259190613854565b611bf5565b005b348015610337575f80fd5b50610352600480360381019061034d9190613930565b611c3d565b005b34801561035f575f80fd5b50610368611cb7565b005b348015610375575f80fd5b5061037e611f77565b005b34801561038b575f80fd5b50610394612218565b005b3480156103a1575f80fd5b506103aa612248565b6040516103b791906139d7565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e191906139f7565b6124cd565b005b3480156103f3575f80fd5b506103fc6124e6565b005b348015610409575f80fd5b50610424600480360381019061041f9190613a22565b6126a3565b005b348015610431575f80fd5b5061043a6128d6565b005b348015610447575f80fd5b50610450612cb4565b60405161045d9190613a9d565b60405180910390f35b348015610471575f80fd5b5061047a612cba565b005b348015610487575f80fd5b506104a2600480360381019061049d9190613930565b612cf7565b005b6104ac612f3f565b620186a0815f019067ffffffffffffffff16908167ffffffffffffffff16815250505f6104d883612d74565b90505f6040518060200160405280600367ffffffffffffffff81111561050157610500613084565b5b60405190808252806020026020018201604052801561053a57816020015b610527612f69565b81526020019060019003908161051f5790505b50815250905060405180604001604052806040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280601081526020017f7b226e616d65223a202274657374227d00000000000000000000000000000000815250815250815f01515f815181106105d5576105d4613ab6565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001835f0151815250815f015160018151811061064457610643613ab6565b5b60200260200101819052505f600167ffffffffffffffff81111561066b5761066a613084565b5b6040519080825280601f01601f19166020018201604052801561069d5781602001600182028036833780820191505090505b509050600160f81b815f815181106106b8576106b7613ab6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060405180604001604052806040518060400160405280600181526020017f7700000000000000000000000000000000000000000000000000000000000000815250815260200182815250825f015160028151811061074757610746613ab6565b5b60200260200101819052505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016107ce90613b3d565b602060405180830381865afa1580156107e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080d9190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161085890613bfa565b602060405180830381865afa158015610873573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190613b85565b86896040518563ffffffff1660e01b81526004016108b89493929190614001565b5f604051808303815f875af11580156108d3573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906108fb9190614278565b90507fb6fd8ee14d0676f1114ba6d856787da2b580195d08b7f7ce88548823effe268d815f01515f8151811061093457610933613ab6565b5b60200260200101516020015160405161094d91906139d7565b60405180910390a1505050505050565b610965612f3f565b5f8267ffffffffffffffff1603610a0c5773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a714b58d336040518263ffffffff1660e01b81526004016109c391906142df565b5f60405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a0591906145d3565b9050610a2c565b81815f019067ffffffffffffffff16908167ffffffffffffffff16815250505b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663423fa15133836040518363ffffffff1660e01b8152600401610a7b92919061461a565b5f604051808303815f87803b158015610a92575f80fd5b505af1158015610aa4573d5f803e3d5ffd5b50505050610ab0612f3f565b6101f467ffffffffffffffff16825f015167ffffffffffffffff1611610ad4575f80fd5b6101f4825f0151610ae59190614675565b815f019067ffffffffffffffff16908167ffffffffffffffff1681525050610b0b612f83565b610b13612fd1565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b7a53f538785600186866040518663ffffffff1660e01b8152600401610b699594939291906148ab565b5f604051808303815f87803b158015610b80575f80fd5b505af1158015610b92573d5f803e3d5ffd5b50505050505050505050565b610ba6612f3f565b620186a0815f019067ffffffffffffffff16908167ffffffffffffffff16815250505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015610c25573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610c4d919061496d565b90505f6040518060200160405280600267ffffffffffffffff811115610c7657610c75613084565b5b604051908082528060200260200182016040528015610caf57816020015b610c9c612f69565b815260200190600190039081610c945790505b50815250905060405180604001604052806040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280601081526020017f7b226e616d65223a202274657374227d00000000000000000000000000000000815250815250815f01515f81518110610d4a57610d49613ab6565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001835f0151815250815f0151600181518110610db957610db8613ab6565b5b60200260200101819052505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401610e4090613b3d565b602060405180830381865afa158015610e5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7f9190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401610eca90613bfa565b602060405180830381865afa158015610ee5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f099190613b85565b85886040518563ffffffff1660e01b8152600401610f2a9493929190614001565b5f604051808303815f875af1158015610f45573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610f6d9190614278565b90507fb6fd8ee14d0676f1114ba6d856787da2b580195d08b7f7ce88548823effe268d815f01515f81518110610fa657610fa5613ab6565b5b602002602001015160200151604051610fbf91906139d7565b60405180910390a150505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ca6528ce6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561102a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906110529190614a09565b90507f41aec7e1afdd771a4a8d3d2f4195266991744d24445781617c2151aa73e30186816040516110839190614a77565b60405180910390a150565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635404bbf76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111109190614ac1565b90507f2778726dc1b9d6d2ee2628a18174907da485ba8765490e157ddf1202528ed5bc816040516111419190614afb565b60405180910390a150565b611154612f3f565b81815f019067ffffffffffffffff16908167ffffffffffffffff168152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638adfedc78585846040518463ffffffff1660e01b81526004016111c493929190614b32565b5f604051808303815f87803b1580156111db575f80fd5b505af11580156111ed573d5f803e3d5ffd5b5050505050505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015611254573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061127c919061496d565b90507faded0c26c8cc65771b245ec36a4a290a35b0cd003545068bcef2dcac18b8815c816040516112ad9190614b95565b60405180910390a150565b602a6040517fa8b4db620000000000000000000000000000000000000000000000000000000081526004016112ed9190614bfa565b60405180910390fd5b7f5d1ca04f16bd7543edfc3334447b8976b0504f3a3e449dcd9992eb93781a80f360405161132390614c5d565b60405180910390a1565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af9190614ca5565b905090565b5f6040518060200160405280600267ffffffffffffffff8111156113db576113da613084565b5b60405190808252806020026020018201604052801561141457816020015b611401612f69565b8152602001906001900390816113f95790505b50815250905060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001845f0151815250815f01515f8151811061147d5761147c613ab6565b5b602002602001018190525073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161150390613b3d565b602060405180830381865afa15801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161158d90614d1a565b602060405180830381865afa1580156115a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115cc9190613b85565b84866040518563ffffffff1660e01b81526004016115ed9493929190614001565b5f604051808303815f875af1158015611608573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906116309190614278565b50505050565b61163e612f3f565b620186a0815f019067ffffffffffffffff16908167ffffffffffffffff16815250505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa1580156116bd573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906116e5919061496d565b90505f6040518060200160405280600367ffffffffffffffff81111561170e5761170d613084565b5b60405190808252806020026020018201604052801561174757816020015b611734612f69565b81526020019060019003908161172c5790505b50815250905060405180604001604052806040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280601081526020017f7b226e616d65223a202274657374227d00000000000000000000000000000000815250815250815f01515f815181106117e2576117e1613ab6565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001835f0151815250815f015160018151811061185157611850613ab6565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f43000000000000000000000000000000000000000000000000000000000000008152508152602001856040516020016118b39190614d58565b604051602081830303815290604052815250815f01516002815181106118dc576118db613ab6565b5b60200260200101819052505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161196390613b3d565b602060405180830381865afa15801561197e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a29190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016119ed90613bfa565b602060405180830381865afa158015611a08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2c9190613b85565b85886040518563ffffffff1660e01b8152600401611a4d9493929190614001565b5f604051808303815f875af1158015611a68573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611a909190614278565b90507fb6fd8ee14d0676f1114ba6d856787da2b580195d08b7f7ce88548823effe268d815f01515f81518110611ac957611ac8613ab6565b5b602002602001015160200151604051611ae291906139d7565b60405180910390a15050505050565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2390614c5d565b60405180910390fd5b5f604051611b3990612ff3565b604051809103905ff080158015611b52573d5f803e3d5ffd5b5090507f619e004505ac1d1c1c901fa7ad8f849ad75977fe395f6df05966aac8702a22a281604051611b8491906142df565b60405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663bcfb1959336040518263ffffffff1660e01b8152600401611bc59190614d81565b5f604051808303815f87803b158015611bdc575f80fd5b505af1158015611bee573d5f803e3d5ffd5b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c38573d5f803e3d5ffd5b505050565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6c75c6b826040518263ffffffff1660e01b8152600401611c8a9190614ddc565b5f604051808303815f87803b158015611ca1575f80fd5b505af1158015611cb3573d5f803e3d5ffd5b5f80fd5b5f6040518060200160405280600167ffffffffffffffff811115611cde57611cdd613084565b5b604051908082528060200260200182016040528015611d1757816020015b611d04612f69565b815260200190600190039081611cfc5790505b5081525090505f6040518060400160405280600881526020017f2a00000000000000000000000000000000000000000000000000000000000000815250905060405180604001604052806040518060400160405280600781526020017f636f756e74657200000000000000000000000000000000000000000000000000815250815260200182815250825f01515f81518110611db657611db5613ab6565b5b6020026020010181905250611dc9612f3f565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401611e4490614e46565b602060405180830381865afa158015611e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e839190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401611ece90614eae565b602060405180830381865afa158015611ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0d9190613b85565b86856040518563ffffffff1660e01b8152600401611f2e9493929190614001565b5f604051808303815f875af1158015611f49573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611f719190614278565b50505050565b5f3060601b604051602001611f8c9190614f46565b60405160208183030381529060405290505f6040518060200160405280600167ffffffffffffffff811115611fc457611fc3613084565b5b604051908082528060200260200182016040528015611ffd57816020015b611fea612f69565b815260200190600190039081611fe25790505b50815250905060405180604001604052806040518060400160405280600181526020017f6300000000000000000000000000000000000000000000000000000000000000815250815260200183815250815f01515f8151811061206357612062613ab6565b5b602002602001018190525073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630a26061773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016120e990614fc8565b602060405180830381865afa158015612104573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121289190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161217390615030565b602060405180830381865afa15801561218e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b29190613b85565b846040518463ffffffff1660e01b81526004016121d19392919061504e565b5f60405180830381865afa1580156121eb573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906122139190614278565b505050565b7fb7575244c27f0af0a38da3d7e04920b4409766ef4699eea08f74dff24db98a1a60405160405180910390a15f80fd5b60605f60405180602001604052805f67ffffffffffffffff8111156122705761226f613084565b5b6040519080825280602002602001820160405280156122a957816020015b612296612f69565b81526020019060019003908161228e5790505b5081525090505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630a26061773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161232b90613b3d565b602060405180830381865afa158015612346573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236a9190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016123b5906150d4565b602060405180830381865afa1580156123d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123f49190613b85565b856040518463ffffffff1660e01b81526004016124139392919061504e565b5f60405180830381865afa15801561242d573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906124559190614278565b90505f5b815f0151518110156124c6575f825f0151828151811061247c5761247b613ab6565b5b60200260200101515f015151036124b957815f015181815181106124a3576124a2613ab6565b5b60200260200101516020015193505050506124ca565b8080600101915050612459565b5f80fd5b90565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6124ee613000565b6124f6612f3f565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016125719061513c565b602060405180830381865afa15801561258c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b09190613b85565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016125fb906151a4565b602060405180830381865afa158015612616573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263a9190613b85565b85856040518563ffffffff1660e01b815260040161265b9493929190614001565b5f604051808303815f875af1158015612676573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061269e9190614278565b505050565b6126ab612f3f565b81815f019067ffffffffffffffff16908167ffffffffffffffff1681525050600167ffffffffffffffff8111156126e5576126e4613084565b5b6040519080825280602002602001820160405280156127135781602001602082028036833780820191505090505b5081604001819052508281604001515f8151811061273457612733613ab6565b5b60200260200101818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663423fa15133836040518363ffffffff1660e01b815260040161278f92919061461a565b5f604051808303815f87803b1580156127a6575f80fd5b505af11580156127b8573d5f803e3d5ffd5b505050506127c4612f3f565b600167ffffffffffffffff8111156127df576127de613084565b5b60405190808252806020026020018201604052801561280d5781602001602082028036833780820191505090505b5081604001819052508381604001515f8151811061282e5761282d613ab6565b5b602002602001018181525050612842612f83565b61284a612fd1565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b7a53f538885600186866040518663ffffffff1660e01b81526004016128a09594939291906148ab565b5f604051808303815f87803b1580156128b7575f80fd5b505af11580156128c9573d5f803e3d5ffd5b5050505050505050505050565b5f606073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166040516024016129139061520c565b6040516020818303038152906040527fe6c75c6b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161299d9190615264565b5f604051808303815f865af19150503d805f81146129d6576040519150601f19603f3d011682016040523d82523d5f602084013e6129db565b606091505b50809250819350505081612a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1b906152c4565b60405180910390fd5b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f564b81ef000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612adf9190615264565b5f60405180830381855afa9150503d805f8114612b17576040519150601f19603f3d011682016040523d82523d5f602084013e612b1c565b606091505b50809250819350505081612b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5c90615352565b60405180910390fd5b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16604051602401612b9f906153ba565b6040516020818303038152906040527fe6c75c6b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612c299190615264565b5f60405180830381855afa9150503d805f8114612c61576040519150601f19603f3d011682016040523d82523d5f602084013e612c66565b606091505b5080925081935050508115612cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca790615448565b60405180910390fd5b5050565b6101f481565b5b6127105a10612cf5577ff9c7a13c2c2ddb716633ae77fd03fb7d2e3bf5ab3a45ba50ec2d3decc9ee650c60405160405180910390a1612cbb565b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6c75c6b826040518263ffffffff1660e01b8152600401612d449190614ddc565b5f604051808303815f87803b158015612d5b575f80fd5b505af1158015612d6d573d5f803e3d5ffd5b5050505050565b612d7c613013565b6020825114612dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db7906154b0565b60405180910390fd5b612dc8613013565b602267ffffffffffffffff811115612de357612de2613084565b5b6040519080825280601f01601f191660200182016040528015612e155781602001600182028036833780820191505090505b50815f0181905250600160f81b815f01515f81518110612e3857612e37613ab6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60f81b815f0151600181518110612e8157612e80613ab6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5b8351811015612f3557838181518110612ecd57612ecc613ab6565b5b602001015160f81c60f81b825f0151600283612ee991906154ce565b81518110612efa57612ef9613ab6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050612eb1565b5080915050919050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b604051806040016040528060608152602001606081525090565b6040518060a001604052805f63ffffffff1681526020015f63ffffffff168152602001612fae613000565b8152602001612fbb612f3f565b81526020015f67ffffffffffffffff1681525090565b60405180604001604052805f60070b8152602001612fed613026565b81525090565b61012a8061550283390190565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b60405180604001604052805f60070b8152602001613042613048565b81525090565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6130ba82613074565b810181811067ffffffffffffffff821117156130d9576130d8613084565b5b80604052505050565b5f6130eb61305b565b90506130f782826130b1565b919050565b5f67ffffffffffffffff82111561311657613115613084565b5b61311f82613074565b9050602081019050919050565b828183375f83830152505050565b5f61314c613147846130fc565b6130e2565b90508281526020810184848401111561316857613167613070565b5b61317384828561312c565b509392505050565b5f82601f83011261318f5761318e61306c565b5b813561319f84826020860161313a565b91505092915050565b5f602082840312156131bd576131bc613064565b5b5f82013567ffffffffffffffff8111156131da576131d9613068565b5b6131e68482850161317b565b91505092915050565b5f80fd5b5f80fd5b5f6020828403121561320c5761320b6131ef565b5b61321660206130e2565b90505f82013567ffffffffffffffff811115613235576132346131f3565b5b6132418482850161317b565b5f8301525092915050565b5f67ffffffffffffffff82169050919050565b6132688161324c565b8114613272575f80fd5b50565b5f813590506132838161325f565b92915050565b5f806040838503121561329f5761329e613064565b5b5f83013567ffffffffffffffff8111156132bc576132bb613068565b5b6132c8858286016131f7565b92505060206132d985828601613275565b9150509250929050565b5f63ffffffff82169050919050565b6132fb816132e3565b8114613305575f80fd5b50565b5f81359050613316816132f2565b92915050565b5f819050919050565b61332e8161331c565b8114613338575f80fd5b50565b5f8135905061334981613325565b92915050565b5f805f6060848603121561336657613365613064565b5b5f61337386828701613308565b93505060206133848682870161333b565b925050604061339586828701613275565b9150509250925092565b5f819050919050565b5f6133b28261339f565b9050919050565b6133c2816133a8565b82525050565b5f6020820190506133db5f8301846133b9565b92915050565b5f602082840312156133f6576133f56131ef565b5b61340060206130e2565b90505f82013567ffffffffffffffff81111561341f5761341e6131f3565b5b61342b8482850161317b565b5f8301525092915050565b5f67ffffffffffffffff8211156134505761344f613084565b5b602082029050602081019050919050565b5f80fd5b5f6020828403121561347a576134796131ef565b5b61348460206130e2565b90505f82013567ffffffffffffffff8111156134a3576134a26131f3565b5b6134af8482850161317b565b5f8301525092915050565b5f604082840312156134cf576134ce6131ef565b5b6134d960406130e2565b90505f82013567ffffffffffffffff8111156134f8576134f76131f3565b5b61350484828501613465565b5f8301525060206135178482850161333b565b60208301525092915050565b5f61353561353084613436565b6130e2565b9050808382526020820190506020840283018581111561355857613557613461565b5b835b8181101561359f57803567ffffffffffffffff81111561357d5761357c61306c565b5b80860161358a89826134ba565b8552602085019450505060208101905061355a565b5050509392505050565b5f82601f8301126135bd576135bc61306c565b5b81356135cd848260208601613523565b91505092915050565b5f67ffffffffffffffff8211156135f0576135ef613084565b5b602082029050602081019050919050565b61360a8161339f565b8114613614575f80fd5b50565b5f8135905061362581613601565b92915050565b5f61363d613638846135d6565b6130e2565b905080838252602082019050602084028301858111156136605761365f613461565b5b835b8181101561368957806136758882613617565b845260208401935050602081019050613662565b5050509392505050565b5f82601f8301126136a7576136a661306c565b5b81356136b784826020860161362b565b91505092915050565b5f606082840312156136d5576136d46131ef565b5b6136df60606130e2565b90505f6136ee84828501613275565b5f83015250602082013567ffffffffffffffff811115613711576137106131f3565b5b61371d848285016135a9565b602083015250604082013567ffffffffffffffff811115613741576137406131f3565b5b61374d84828501613693565b60408301525092915050565b5f806040838503121561376f5761376e613064565b5b5f83013567ffffffffffffffff81111561378c5761378b613068565b5b613798858286016133e1565b925050602083013567ffffffffffffffff8111156137b9576137b8613068565b5b6137c5858286016136c0565b9150509250929050565b5f602082840312156137e4576137e3613064565b5b5f6137f184828501613617565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613823826137fa565b9050919050565b61383381613819565b811461383d575f80fd5b50565b5f8135905061384e8161382a565b92915050565b5f806040838503121561386a57613869613064565b5b5f61387785828601613840565b92505060206138888582860161333b565b9150509250929050565b5f67ffffffffffffffff8211156138ac576138ab613084565b5b6138b582613074565b9050602081019050919050565b5f6138d46138cf84613892565b6130e2565b9050828152602081018484840111156138f0576138ef613070565b5b6138fb84828561312c565b509392505050565b5f82601f8301126139175761391661306c565b5b81356139278482602086016138c2565b91505092915050565b5f6020828403121561394557613944613064565b5b5f82013567ffffffffffffffff81111561396257613961613068565b5b61396e84828501613903565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6139a982613977565b6139b38185613981565b93506139c3818560208601613991565b6139cc81613074565b840191505092915050565b5f6020820190508181035f8301526139ef818461399f565b905092915050565b5f60208284031215613a0c57613a0b613064565b5b5f613a1984828501613840565b91505092915050565b5f805f60608486031215613a3957613a38613064565b5b5f84013567ffffffffffffffff811115613a5657613a55613068565b5b613a62868287016131f7565b9350506020613a7386828701613617565b9250506040613a8486828701613275565b9150509250925092565b613a978161324c565b82525050565b5f602082019050613ab05f830184613a8e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82825260208201905092915050565b7f6163636f756e74730000000000000000000000000000000000000000000000005f82015250565b5f613b27600883613ae3565b9150613b3282613af3565b602082019050919050565b5f6020820190508181035f830152613b5481613b1b565b9050919050565b613b64816132e3565b8114613b6e575f80fd5b50565b5f81519050613b7f81613b5b565b92915050565b5f60208284031215613b9a57613b99613064565b5b5f613ba784828501613b71565b91505092915050565b7f6d696e744e4654000000000000000000000000000000000000000000000000005f82015250565b5f613be4600783613ae3565b9150613bef82613bb0565b602082019050919050565b5f6020820190508181035f830152613c1181613bd8565b9050919050565b5f819050919050565b5f613c3b613c36613c31846132e3565b613c18565b6132e3565b9050919050565b613c4b81613c21565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f613c9482613977565b613c9e8185613c7a565b9350613cae818560208601613991565b613cb781613074565b840191505092915050565b5f604083015f8301518482035f860152613cdc8282613c8a565b91505060208301518482036020860152613cf68282613c8a565b9150508091505092915050565b5f613d0e8383613cc2565b905092915050565b5f602082019050919050565b5f613d2c82613c51565b613d368185613c5b565b935083602082028501613d4885613c6b565b805f5b85811015613d835784840389528151613d648582613d03565b9450613d6f83613d16565b925060208a01995050600181019050613d4b565b50829750879550505050505092915050565b5f602083015f8301518482035f860152613daf8282613d22565b9150508091505092915050565b613dc58161324c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f602083015f8301518482035f860152613e0e8282613c8a565b9150508091505092915050565b613e248161331c565b82525050565b5f604083015f8301518482035f860152613e448282613df4565b9150506020830151613e596020860182613e1b565b508091505092915050565b5f613e6f8383613e2a565b905092915050565b5f602082019050919050565b5f613e8d82613dcb565b613e978185613dd5565b935083602082028501613ea985613de5565b805f5b85811015613ee45784840389528151613ec58582613e64565b9450613ed083613e77565b925060208a01995050600181019050613eac565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f28816133a8565b82525050565b5f613f398383613f1f565b60208301905092915050565b5f602082019050919050565b5f613f5b82613ef6565b613f658185613f00565b9350613f7083613f10565b805f5b83811015613fa0578151613f878882613f2e565b9750613f9283613f45565b925050600181019050613f73565b5085935050505092915050565b5f606083015f830151613fc25f860182613dbc565b5060208301518482036020860152613fda8282613e83565b91505060408301518482036040860152613ff48282613f51565b9150508091505092915050565b5f6080820190506140145f830187613c42565b6140216020830186613c42565b81810360408301526140338185613d95565b905081810360608301526140478184613fad565b905095945050505050565b5f67ffffffffffffffff82111561406c5761406b613084565b5b602082029050602081019050919050565b5f61408f61408a846130fc565b6130e2565b9050828152602081018484840111156140ab576140aa613070565b5b6140b6848285613991565b509392505050565b5f82601f8301126140d2576140d161306c565b5b81516140e284826020860161407d565b91505092915050565b5f60408284031215614100576140ff6131ef565b5b61410a60406130e2565b90505f82015167ffffffffffffffff811115614129576141286131f3565b5b614135848285016140be565b5f83015250602082015167ffffffffffffffff811115614158576141576131f3565b5b614164848285016140be565b60208301525092915050565b5f61418261417d84614052565b6130e2565b905080838252602082019050602084028301858111156141a5576141a4613461565b5b835b818110156141ec57805167ffffffffffffffff8111156141ca576141c961306c565b5b8086016141d789826140eb565b855260208501945050506020810190506141a7565b5050509392505050565b5f82601f83011261420a5761420961306c565b5b815161421a848260208601614170565b91505092915050565b5f60208284031215614238576142376131ef565b5b61424260206130e2565b90505f82015167ffffffffffffffff811115614261576142606131f3565b5b61426d848285016141f6565b5f8301525092915050565b5f6020828403121561428d5761428c613064565b5b5f82015167ffffffffffffffff8111156142aa576142a9613068565b5b6142b684828501614223565b91505092915050565b5f6142c9826137fa565b9050919050565b6142d9816142bf565b82525050565b5f6020820190506142f25f8301846142d0565b92915050565b5f815190506143068161325f565b92915050565b5f60208284031215614321576143206131ef565b5b61432b60206130e2565b90505f82015167ffffffffffffffff81111561434a576143496131f3565b5b614356848285016140be565b5f8301525092915050565b5f8151905061436f81613325565b92915050565b5f6040828403121561438a576143896131ef565b5b61439460406130e2565b90505f82015167ffffffffffffffff8111156143b3576143b26131f3565b5b6143bf8482850161430c565b5f8301525060206143d284828501614361565b60208301525092915050565b5f6143f06143eb84613436565b6130e2565b9050808382526020820190506020840283018581111561441357614412613461565b5b835b8181101561445a57805167ffffffffffffffff8111156144385761443761306c565b5b8086016144458982614375565b85526020850194505050602081019050614415565b5050509392505050565b5f82601f8301126144785761447761306c565b5b81516144888482602086016143de565b91505092915050565b5f8151905061449f81613601565b92915050565b5f6144b76144b2846135d6565b6130e2565b905080838252602082019050602084028301858111156144da576144d9613461565b5b835b8181101561450357806144ef8882614491565b8452602084019350506020810190506144dc565b5050509392505050565b5f82601f8301126145215761452061306c565b5b81516145318482602086016144a5565b91505092915050565b5f6060828403121561454f5761454e6131ef565b5b61455960606130e2565b90505f614568848285016142f8565b5f83015250602082015167ffffffffffffffff81111561458b5761458a6131f3565b5b61459784828501614464565b602083015250604082015167ffffffffffffffff8111156145bb576145ba6131f3565b5b6145c78482850161450d565b60408301525092915050565b5f602082840312156145e8576145e7613064565b5b5f82015167ffffffffffffffff81111561460557614604613068565b5b6146118482850161453a565b91505092915050565b5f60408201905061462d5f8301856142d0565b818103602083015261463f8184613fad565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61467f8261324c565b915061468a8361324c565b9250828203905067ffffffffffffffff8111156146aa576146a9614648565b5b92915050565b5f602083015f8301518482035f8601526146ca8282613c8a565b9150508091505092915050565b5f8115159050919050565b6146eb816146d7565b82525050565b6146fa81613c21565b82525050565b5f602083015f8301518482035f86015261471a8282613d22565b9150508091505092915050565b5f606083015f83015161473c5f860182613dbc565b50602083015184820360208601526147548282613e83565b9150506040830151848203604086015261476e8282613f51565b9150508091505092915050565b5f60a083015f8301516147905f8601826146f1565b5060208301516147a360208601826146f1565b50604083015184820360408601526147bb8282614700565b915050606083015184820360608601526147d58282614727565b91505060808301516147ea6080860182613dbc565b508091505092915050565b5f8160070b9050919050565b61480a816147f5565b82525050565b5f602083015f8301518482035f86015261482a8282613c8a565b9150508091505092915050565b5f604083015f83015161484c5f860182614801565b50602083015184820360208601526148648282614810565b9150508091505092915050565b5f604083015f8301516148865f860182614801565b506020830151848203602086015261489e8282614837565b9150508091505092915050565b5f60a0820190508181035f8301526148c381886146b0565b905081810360208301526148d78187613fad565b90506148e660408301866146e2565b81810360608301526148f8818561477b565b9050818103608083015261490c8184614871565b90509695505050505050565b5f6020828403121561492d5761492c6131ef565b5b61493760206130e2565b90505f82015167ffffffffffffffff811115614956576149556131f3565b5b614962848285016140be565b5f8301525092915050565b5f6020828403121561498257614981613064565b5b5f82015167ffffffffffffffff81111561499f5761499e613068565b5b6149ab84828501614918565b91505092915050565b5f602082840312156149c9576149c86131ef565b5b6149d360206130e2565b90505f82015167ffffffffffffffff8111156149f2576149f16131f3565b5b6149fe848285016140be565b5f8301525092915050565b5f60208284031215614a1e57614a1d613064565b5b5f82015167ffffffffffffffff811115614a3b57614a3a613068565b5b614a47848285016149b4565b91505092915050565b5f602083015f8301518482035f860152614a6a8282613c8a565b9150508091505092915050565b5f6020820190508181035f830152614a8f8184614a50565b905092915050565b614aa08161339f565b8114614aaa575f80fd5b50565b5f81519050614abb81614a97565b92915050565b5f60208284031215614ad657614ad5613064565b5b5f614ae384828501614aad565b91505092915050565b614af58161339f565b82525050565b5f602082019050614b0e5f830184614aec565b92915050565b614b1d816132e3565b82525050565b614b2c8161331c565b82525050565b5f606082019050614b455f830186614b14565b614b526020830185614b23565b8181036040830152614b648184613fad565b9050949350505050565b5f602083015f8301518482035f860152614b888282613c8a565b9150508091505092915050565b5f6020820190508181035f830152614bad8184614b6e565b905092915050565b5f819050919050565b5f60ff82169050919050565b5f614be4614bdf614bda84614bb5565b613c18565b614bbe565b9050919050565b614bf481614bca565b82525050565b5f602082019050614c0d5f830184614beb565b92915050565b7f666f6f62617200000000000000000000000000000000000000000000000000005f82015250565b5f614c47600683613ae3565b9150614c5282614c13565b602082019050919050565b5f6020820190508181035f830152614c7481614c3b565b9050919050565b614c848161339f565b8114614c8e575f80fd5b50565b5f81519050614c9f81614c7b565b92915050565b5f60208284031215614cba57614cb9613064565b5b5f614cc784828501614c91565b91505092915050565b7f7472616e73666572416c6c6f77616e6365546f000000000000000000000000005f82015250565b5f614d04601383613ae3565b9150614d0f82614cd0565b602082019050919050565b5f6020820190508181035f830152614d3181614cf8565b9050919050565b5f819050919050565b614d52614d4d826133a8565b614d38565b82525050565b5f614d638284614d41565b60208201915081905092915050565b614d7b81613819565b82525050565b5f602082019050614d945f830184614d72565b92915050565b5f81519050919050565b5f614dae82614d9a565b614db88185613ae3565b9350614dc8818560208601613991565b614dd181613074565b840191505092915050565b5f6020820190508181035f830152614df48184614da4565b905092915050565b7f696e63636f756e746572000000000000000000000000000000000000000000005f82015250565b5f614e30600a83613ae3565b9150614e3b82614dfc565b602082019050919050565b5f6020820190508181035f830152614e5d81614e24565b9050919050565b7f696e63436f756e746572000000000000000000000000000000000000000000005f82015250565b5f614e98600a83613ae3565b9150614ea382614e64565b602082019050919050565b5f6020820190508181035f830152614ec581614e8c565b9050919050565b6b010000000000000000000000815250565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f819050919050565b614f23614f1e82614ede565b614f09565b82525050565b7604000000b3ee6942000000000000000000000000000000815250565b5f614f5082614ecc565b601582019150614f608284614f12565b601482019150614f6f82614f29565b60118201915081905092915050565b7f65766d00000000000000000000000000000000000000000000000000000000005f82015250565b5f614fb2600383613ae3565b9150614fbd82614f7e565b602082019050919050565b5f6020820190508181035f830152614fdf81614fa6565b9050919050565b7f63616c6c436f6e747261637400000000000000000000000000000000000000005f82015250565b5f61501a600c83613ae3565b915061502582614fe6565b602082019050919050565b5f6020820190508181035f8301526150478161500e565b9050919050565b5f6060820190506150615f830186613c42565b61506e6020830185613c42565b81810360408301526150808184613d95565b9050949350505050565b7f62616c616e6365000000000000000000000000000000000000000000000000005f82015250565b5f6150be600783613ae3565b91506150c98261508a565b602082019050919050565b5f6020820190508181035f8301526150eb816150b2565b9050919050565b7f676f7665726e616e6365000000000000000000000000000000000000000000005f82015250565b5f615126600a83613ae3565b9150615131826150f2565b602082019050919050565b5f6020820190508181035f8301526151538161511a565b9050919050565b7f636c61696d436861696e4f776e657273686970000000000000000000000000005f82015250565b5f61518e601383613ae3565b91506151998261515a565b602082019050919050565b5f6020820190508181035f8301526151bb81615182565b9050919050565b7f6e6f6e2d737461746963000000000000000000000000000000000000000000005f82015250565b5f6151f6600a83613ae3565b9150615201826151c2565b602082019050919050565b5f6020820190508181035f830152615223816151ea565b9050919050565b5f81905092915050565b5f61523e82613977565b615248818561522a565b9350615258818560208601613991565b80840191505092915050565b5f61526f8284615234565b915081905092915050565b7f63616c6c2073686f756c642073756363656564000000000000000000000000005f82015250565b5f6152ae601383613ae3565b91506152b98261527a565b602082019050919050565b5f6020820190508181035f8301526152db816152a2565b9050919050565b7f73746174696363616c6c20746f20766965772073686f756c64207375636365655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61533c602183613ae3565b9150615347826152e2565b604082019050919050565b5f6020820190508181035f83015261536981615330565b9050919050565b7f73746174696300000000000000000000000000000000000000000000000000005f82015250565b5f6153a4600683613ae3565b91506153af82615370565b602082019050919050565b5f6020820190508181035f8301526153d181615398565b9050919050565b7f73746174696363616c6c20746f206e6f6e2d766965772073686f756c642066615f8201527f696c000000000000000000000000000000000000000000000000000000000000602082015250565b5f615432602283613ae3565b915061543d826153d8565b604082019050919050565b5f6020820190508181035f83015261545f81615426565b9050919050565b7f6261642061646472657373206c656e67746800000000000000000000000000005f82015250565b5f61549a601283613ae3565b91506154a582615466565b602082019050919050565b5f6020820190508181035f8301526154c78161548e565b9050919050565b5f6154d88261331c565b91506154e38361331c565b92508282019050808211156154fb576154fa614648565b5b9291505056fe6080604052348015600e575f80fd5b5061010e8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063bcfb195914602a575b5f80fd5b60406004803603810190603c919060b2565b6042565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608682605f565b9050919050565b609481607e565b8114609d575f80fd5b50565b5f8135905060ac81608d565b92915050565b5f6020828403121560c45760c3605b565b5b5f60cf8482850160a0565b9150509291505056fea2646970667358221220620f1712e103636cea06552d4318eaebfa9d20b5c50fbd6fc580405a558f9fad64736f6c634300081a0033a264697066735822122064f75291ade5b8e1c51674b6b4c937fb7a8e9bf9a0bc99de19759c3e76e2e70a64736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b506156678061001c5f395ff3fe60806040526004361061019a575f3560e01c8063904b8870116100eb578063bcfb195911610089578063d411defb11610063578063d411defb14610426578063dc91b3d01461043c578063e29a58a314610466578063e6c75c6b1461047c5761019a565b8063bcfb1959146103c0578063c36ba856146103e8578063c5e69945146103fe5761019a565b8063a4a05e21116100c5578063a4a05e2114610354578063b3ee69421461036a578063bb21d92114610380578063bcaeb8a8146103965761019a565b8063904b8870146102fa5780639e1a00aa14610310578063a038a3e61461032c5761019a565b806346d1167611610158578063564b81ef11610132578063564b81ef1461027657806357c8750e146102a0578063687cf0ea146102c85780636a68a760146102e45761019a565b806346d116761461023457806346fc4bb11461024a5780634e522e4b146102605761019a565b8062b79f021461019e57806301fc2576146101ba57806314f710fe146101d657806336c34640146101e05780633772d53f146101f657806339bfb2fa1461020c575b5f5ffd5b6101b860048036038101906101b391906131ae565b6104a4565b005b6101d460048036038101906101cf919061328f565b61095d565b005b6101de610b9e565b005b3480156101eb575f5ffd5b506101f4610fcd565b005b348015610201575f5ffd5b5061020a61108e565b005b348015610217575f5ffd5b50610232600480360381019061022d9190613355565b61114c565b005b34801561023f575f5ffd5b506102486111f7565b005b348015610255575f5ffd5b5061025e6112b8565b005b34801561026b575f5ffd5b506102746112f6565b005b348015610281575f5ffd5b5061028a61132d565b60405161029791906133ce565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c1919061375f565b6113b4565b005b6102e260048036038101906102dd91906137d5565b611636565b005b3480156102ef575f5ffd5b506102f8611af1565b005b348015610305575f5ffd5b5061030e611b2c565b005b61032a6004803603810190610325919061385a565b611bf5565b005b348015610337575f5ffd5b50610352600480360381019061034d9190613936565b611c3d565b005b34801561035f575f5ffd5b50610368611cb7565b005b348015610375575f5ffd5b5061037e611f77565b005b34801561038b575f5ffd5b50610394612218565b005b3480156103a1575f5ffd5b506103aa612248565b6040516103b791906139dd565b60405180910390f35b3480156103cb575f5ffd5b506103e660048036038101906103e191906139fd565b6124d0565b005b3480156103f3575f5ffd5b506103fc6124e9565b005b348015610409575f5ffd5b50610424600480360381019061041f9190613a28565b6126a6565b005b348015610431575f5ffd5b5061043a6128d9565b005b348015610447575f5ffd5b50610450612cb7565b60405161045d9190613aa3565b60405180910390f35b348015610471575f5ffd5b5061047a612cbd565b005b348015610487575f5ffd5b506104a2600480360381019061049d9190613936565b612cfa565b005b6104ac612f45565b620186a0815f019067ffffffffffffffff16908167ffffffffffffffff16815250505f6104d883612d77565b90505f6040518060200160405280600367ffffffffffffffff8111156105015761050061308a565b5b60405190808252806020026020018201604052801561053a57816020015b610527612f6f565b81526020019060019003908161051f5790505b50815250905060405180604001604052806040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280601081526020017f7b226e616d65223a202274657374227d00000000000000000000000000000000815250815250815f01515f815181106105d5576105d4613abc565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001835f0151815250815f015160018151811061064457610643613abc565b5b60200260200101819052505f600167ffffffffffffffff81111561066b5761066a61308a565b5b6040519080825280601f01601f19166020018201604052801561069d5781602001600182028036833780820191505090505b509050600160f81b815f815181106106b8576106b7613abc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060405180604001604052806040518060400160405280600181526020017f7700000000000000000000000000000000000000000000000000000000000000815250815260200182815250825f015160028151811061074757610746613abc565b5b60200260200101819052505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016107ce90613b43565b602060405180830381865afa1580156107e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080d9190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161085890613c00565b602060405180830381865afa158015610873573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190613b8b565b86896040518563ffffffff1660e01b81526004016108b89493929190614007565b5f604051808303815f875af11580156108d3573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906108fb919061427e565b90507fb6fd8ee14d0676f1114ba6d856787da2b580195d08b7f7ce88548823effe268d815f01515f8151811061093457610933613abc565b5b60200260200101516020015160405161094d91906139dd565b60405180910390a1505050505050565b610965612f45565b5f8267ffffffffffffffff1603610a0c5773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a714b58d336040518263ffffffff1660e01b81526004016109c391906142e5565b5f60405180830381865afa1580156109dd573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a0591906145d9565b9050610a2c565b81815f019067ffffffffffffffff16908167ffffffffffffffff16815250505b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663423fa15133836040518363ffffffff1660e01b8152600401610a7b929190614620565b5f604051808303815f87803b158015610a92575f5ffd5b505af1158015610aa4573d5f5f3e3d5ffd5b50505050610ab0612f45565b6101f467ffffffffffffffff16825f015167ffffffffffffffff1611610ad4575f5ffd5b6101f4825f0151610ae5919061467b565b815f019067ffffffffffffffff16908167ffffffffffffffff1681525050610b0b612f89565b610b13612fd7565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b7a53f538785600186866040518663ffffffff1660e01b8152600401610b699594939291906148b1565b5f604051808303815f87803b158015610b80575f5ffd5b505af1158015610b92573d5f5f3e3d5ffd5b50505050505050505050565b610ba6612f45565b620186a0815f019067ffffffffffffffff16908167ffffffffffffffff16815250505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015610c25573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610c4d9190614973565b90505f6040518060200160405280600267ffffffffffffffff811115610c7657610c7561308a565b5b604051908082528060200260200182016040528015610caf57816020015b610c9c612f6f565b815260200190600190039081610c945790505b50815250905060405180604001604052806040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280601081526020017f7b226e616d65223a202274657374227d00000000000000000000000000000000815250815250815f01515f81518110610d4a57610d49613abc565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001835f0151815250815f0151600181518110610db957610db8613abc565b5b60200260200101819052505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401610e4090613b43565b602060405180830381865afa158015610e5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7f9190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401610eca90613c00565b602060405180830381865afa158015610ee5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f099190613b8b565b85886040518563ffffffff1660e01b8152600401610f2a9493929190614007565b5f604051808303815f875af1158015610f45573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610f6d919061427e565b90507fb6fd8ee14d0676f1114ba6d856787da2b580195d08b7f7ce88548823effe268d815f01515f81518110610fa657610fa5613abc565b5b602002602001015160200151604051610fbf91906139dd565b60405180910390a150505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ca6528ce6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561102a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906110529190614a0f565b90507f41aec7e1afdd771a4a8d3d2f4195266991744d24445781617c2151aa73e30186816040516110839190614a7d565b60405180910390a150565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635404bbf76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111109190614ac7565b90507f2778726dc1b9d6d2ee2628a18174907da485ba8765490e157ddf1202528ed5bc816040516111419190614b01565b60405180910390a150565b611154612f45565b81815f019067ffffffffffffffff16908167ffffffffffffffff168152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638adfedc78585846040518463ffffffff1660e01b81526004016111c493929190614b38565b5f604051808303815f87803b1580156111db575f5ffd5b505af11580156111ed573d5f5f3e3d5ffd5b5050505050505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015611254573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061127c9190614973565b90507faded0c26c8cc65771b245ec36a4a290a35b0cd003545068bcef2dcac18b8815c816040516112ad9190614b9b565b60405180910390a150565b602a6040517fa8b4db620000000000000000000000000000000000000000000000000000000081526004016112ed9190614c00565b60405180910390fd5b7f5d1ca04f16bd7543edfc3334447b8976b0504f3a3e449dcd9992eb93781a80f360405161132390614c63565b60405180910390a1565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af9190614cab565b905090565b5f6040518060200160405280600267ffffffffffffffff8111156113db576113da61308a565b5b60405190808252806020026020018201604052801561141457816020015b611401612f6f565b8152602001906001900390816113f95790505b50815250905060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001845f0151815250815f01515f8151811061147d5761147c613abc565b5b602002602001018190525073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161150390613b43565b602060405180830381865afa15801561151e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161158d90614d20565b602060405180830381865afa1580156115a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115cc9190613b8b565b84866040518563ffffffff1660e01b81526004016115ed9493929190614007565b5f604051808303815f875af1158015611608573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611630919061427e565b50505050565b61163e612f45565b620186a0815f019067ffffffffffffffff16908167ffffffffffffffff16815250505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa1580156116bd573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906116e59190614973565b90505f6040518060200160405280600367ffffffffffffffff81111561170e5761170d61308a565b5b60405190808252806020026020018201604052801561174757816020015b611734612f6f565b81526020019060019003908161172c5790505b50815250905060405180604001604052806040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280601081526020017f7b226e616d65223a202274657374227d00000000000000000000000000000000815250815250815f01515f815181106117e2576117e1613abc565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f61000000000000000000000000000000000000000000000000000000000000008152508152602001835f0151815250815f015160018151811061185157611850613abc565b5b602002602001018190525060405180604001604052806040518060400160405280600181526020017f43000000000000000000000000000000000000000000000000000000000000008152508152602001856040516020016118b39190614d5e565b604051602081830303815290604052815250815f01516002815181106118dc576118db613abc565b5b60200260200101819052505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161196390613b43565b602060405180830381865afa15801561197e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a29190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016119ed90613c00565b602060405180830381865afa158015611a08573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2c9190613b8b565b85886040518563ffffffff1660e01b8152600401611a4d9493929190614007565b5f604051808303815f875af1158015611a68573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611a90919061427e565b90507fb6fd8ee14d0676f1114ba6d856787da2b580195d08b7f7ce88548823effe268d815f01515f81518110611ac957611ac8613abc565b5b602002602001015160200151604051611ae291906139dd565b60405180910390a15050505050565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2390614c63565b60405180910390fd5b5f604051611b3990612ff9565b604051809103905ff080158015611b52573d5f5f3e3d5ffd5b5090507f619e004505ac1d1c1c901fa7ad8f849ad75977fe395f6df05966aac8702a22a281604051611b8491906142e5565b60405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663bcfb1959336040518263ffffffff1660e01b8152600401611bc59190614d87565b5f604051808303815f87803b158015611bdc575f5ffd5b505af1158015611bee573d5f5f3e3d5ffd5b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c38573d5f5f3e3d5ffd5b505050565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6c75c6b826040518263ffffffff1660e01b8152600401611c8a9190614de2565b5f604051808303815f87803b158015611ca1575f5ffd5b505af1158015611cb3573d5f5f3e3d5ffd5b5f5ffd5b5f6040518060200160405280600167ffffffffffffffff811115611cde57611cdd61308a565b5b604051908082528060200260200182016040528015611d1757816020015b611d04612f6f565b815260200190600190039081611cfc5790505b5081525090505f6040518060400160405280600881526020017f2a00000000000000000000000000000000000000000000000000000000000000815250905060405180604001604052806040518060400160405280600781526020017f636f756e74657200000000000000000000000000000000000000000000000000815250815260200182815250825f01515f81518110611db657611db5613abc565b5b6020026020010181905250611dc9612f45565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401611e4490614e4c565b602060405180830381865afa158015611e5f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e839190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b8152600401611ece90614eb4565b602060405180830381865afa158015611ee9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0d9190613b8b565b86856040518563ffffffff1660e01b8152600401611f2e9493929190614007565b5f604051808303815f875af1158015611f49573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611f71919061427e565b50505050565b5f3060601b604051602001611f8c9190614f4c565b60405160208183030381529060405290505f6040518060200160405280600167ffffffffffffffff811115611fc457611fc361308a565b5b604051908082528060200260200182016040528015611ffd57816020015b611fea612f6f565b815260200190600190039081611fe25790505b50815250905060405180604001604052806040518060400160405280600181526020017f6300000000000000000000000000000000000000000000000000000000000000815250815260200183815250815f01515f8151811061206357612062613abc565b5b602002602001018190525073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630a26061773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016120e990614fce565b602060405180830381865afa158015612104573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121289190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161217390615036565b602060405180830381865afa15801561218e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b29190613b8b565b846040518463ffffffff1660e01b81526004016121d193929190615054565b5f60405180830381865afa1580156121eb573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612213919061427e565b505050565b7fb7575244c27f0af0a38da3d7e04920b4409766ef4699eea08f74dff24db98a1a60405160405180910390a15f5ffd5b60605f60405180602001604052805f67ffffffffffffffff8111156122705761226f61308a565b5b6040519080825280602002602001820160405280156122a957816020015b612296612f6f565b81526020019060019003908161228e5790505b5081525090505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630a26061773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161232b90613b43565b602060405180830381865afa158015612346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236a9190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016123b5906150da565b602060405180830381865afa1580156123d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123f49190613b8b565b856040518463ffffffff1660e01b815260040161241393929190615054565b5f60405180830381865afa15801561242d573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612455919061427e565b90505f5f90505b815f0151518110156124c9575f825f0151828151811061247f5761247e613abc565b5b60200260200101515f015151036124bc57815f015181815181106124a6576124a5613abc565b5b60200260200101516020015193505050506124cd565b808060010191505061245c565b5f5ffd5b90565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6124f1613006565b6124f9612f45565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663907327e973107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b815260040161257490615142565b602060405180830381865afa15801561258f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b39190613b8b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dbfb12ef6040518163ffffffff1660e01b81526004016125fe906151aa565b602060405180830381865afa158015612619573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263d9190613b8b565b85856040518563ffffffff1660e01b815260040161265e9493929190614007565b5f604051808303815f875af1158015612679573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906126a1919061427e565b505050565b6126ae612f45565b81815f019067ffffffffffffffff16908167ffffffffffffffff1681525050600167ffffffffffffffff8111156126e8576126e761308a565b5b6040519080825280602002602001820160405280156127165781602001602082028036833780820191505090505b5081604001819052508281604001515f8151811061273757612736613abc565b5b60200260200101818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663423fa15133836040518363ffffffff1660e01b8152600401612792929190614620565b5f604051808303815f87803b1580156127a9575f5ffd5b505af11580156127bb573d5f5f3e3d5ffd5b505050506127c7612f45565b600167ffffffffffffffff8111156127e2576127e161308a565b5b6040519080825280602002602001820160405280156128105781602001602082028036833780820191505090505b5081604001819052508381604001515f8151811061283157612830613abc565b5b602002602001018181525050612845612f89565b61284d612fd7565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b7a53f538885600186866040518663ffffffff1660e01b81526004016128a39594939291906148b1565b5f604051808303815f87803b1580156128ba575f5ffd5b505af11580156128cc573d5f5f3e3d5ffd5b5050505050505050505050565b5f606073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1660405160240161291690615212565b6040516020818303038152906040527fe6c75c6b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129a0919061526a565b5f604051808303815f865af19150503d805f81146129d9576040519150601f19603f3d011682016040523d82523d5f602084013e6129de565b606091505b50809250819350505081612a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1e906152ca565b60405180910390fd5b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f564b81ef000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612ae2919061526a565b5f60405180830381855afa9150503d805f8114612b1a576040519150601f19603f3d011682016040523d82523d5f602084013e612b1f565b606091505b50809250819350505081612b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5f90615358565b60405180910390fd5b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16604051602401612ba2906153c0565b6040516020818303038152906040527fe6c75c6b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612c2c919061526a565b5f60405180830381855afa9150503d805f8114612c64576040519150601f19603f3d011682016040523d82523d5f602084013e612c69565b606091505b5080925081935050508115612cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612caa9061544e565b60405180910390fd5b5050565b6101f481565b5b6127105a10612cf8577ff9c7a13c2c2ddb716633ae77fd03fb7d2e3bf5ab3a45ba50ec2d3decc9ee650c60405160405180910390a1612cbe565b565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6c75c6b826040518263ffffffff1660e01b8152600401612d479190614de2565b5f604051808303815f87803b158015612d5e575f5ffd5b505af1158015612d70573d5f5f3e3d5ffd5b5050505050565b612d7f613019565b6020825114612dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dba906154b6565b60405180910390fd5b612dcb613019565b602267ffffffffffffffff811115612de657612de561308a565b5b6040519080825280601f01601f191660200182016040528015612e185781602001600182028036833780820191505090505b50815f0181905250600160f81b815f01515f81518110612e3b57612e3a613abc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60f81b815f0151600181518110612e8457612e83613abc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5f90505b8351811015612f3b57838181518110612ed357612ed2613abc565b5b602001015160f81c60f81b825f0151600283612eef91906154d4565b81518110612f0057612eff613abc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050612eb7565b5080915050919050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b604051806040016040528060608152602001606081525090565b6040518060a001604052805f63ffffffff1681526020015f63ffffffff168152602001612fb4613006565b8152602001612fc1612f45565b81526020015f67ffffffffffffffff1681525090565b60405180604001604052805f60070b8152602001612ff361302c565b81525090565b61012a8061550883390190565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b60405180604001604052805f60070b815260200161304861304e565b81525090565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6130c08261307a565b810181811067ffffffffffffffff821117156130df576130de61308a565b5b80604052505050565b5f6130f1613061565b90506130fd82826130b7565b919050565b5f67ffffffffffffffff82111561311c5761311b61308a565b5b6131258261307a565b9050602081019050919050565b828183375f83830152505050565b5f61315261314d84613102565b6130e8565b90508281526020810184848401111561316e5761316d613076565b5b613179848285613132565b509392505050565b5f82601f83011261319557613194613072565b5b81356131a5848260208601613140565b91505092915050565b5f602082840312156131c3576131c261306a565b5b5f82013567ffffffffffffffff8111156131e0576131df61306e565b5b6131ec84828501613181565b91505092915050565b5f5ffd5b5f5ffd5b5f60208284031215613212576132116131f5565b5b61321c60206130e8565b90505f82013567ffffffffffffffff81111561323b5761323a6131f9565b5b61324784828501613181565b5f8301525092915050565b5f67ffffffffffffffff82169050919050565b61326e81613252565b8114613278575f5ffd5b50565b5f8135905061328981613265565b92915050565b5f5f604083850312156132a5576132a461306a565b5b5f83013567ffffffffffffffff8111156132c2576132c161306e565b5b6132ce858286016131fd565b92505060206132df8582860161327b565b9150509250929050565b5f63ffffffff82169050919050565b613301816132e9565b811461330b575f5ffd5b50565b5f8135905061331c816132f8565b92915050565b5f819050919050565b61333481613322565b811461333e575f5ffd5b50565b5f8135905061334f8161332b565b92915050565b5f5f5f6060848603121561336c5761336b61306a565b5b5f6133798682870161330e565b935050602061338a86828701613341565b925050604061339b8682870161327b565b9150509250925092565b5f819050919050565b5f6133b8826133a5565b9050919050565b6133c8816133ae565b82525050565b5f6020820190506133e15f8301846133bf565b92915050565b5f602082840312156133fc576133fb6131f5565b5b61340660206130e8565b90505f82013567ffffffffffffffff811115613425576134246131f9565b5b61343184828501613181565b5f8301525092915050565b5f67ffffffffffffffff8211156134565761345561308a565b5b602082029050602081019050919050565b5f5ffd5b5f602082840312156134805761347f6131f5565b5b61348a60206130e8565b90505f82013567ffffffffffffffff8111156134a9576134a86131f9565b5b6134b584828501613181565b5f8301525092915050565b5f604082840312156134d5576134d46131f5565b5b6134df60406130e8565b90505f82013567ffffffffffffffff8111156134fe576134fd6131f9565b5b61350a8482850161346b565b5f83015250602061351d84828501613341565b60208301525092915050565b5f61353b6135368461343c565b6130e8565b9050808382526020820190506020840283018581111561355e5761355d613467565b5b835b818110156135a557803567ffffffffffffffff81111561358357613582613072565b5b80860161359089826134c0565b85526020850194505050602081019050613560565b5050509392505050565b5f82601f8301126135c3576135c2613072565b5b81356135d3848260208601613529565b91505092915050565b5f67ffffffffffffffff8211156135f6576135f561308a565b5b602082029050602081019050919050565b613610816133a5565b811461361a575f5ffd5b50565b5f8135905061362b81613607565b92915050565b5f61364361363e846135dc565b6130e8565b9050808382526020820190506020840283018581111561366657613665613467565b5b835b8181101561368f578061367b888261361d565b845260208401935050602081019050613668565b5050509392505050565b5f82601f8301126136ad576136ac613072565b5b81356136bd848260208601613631565b91505092915050565b5f606082840312156136db576136da6131f5565b5b6136e560606130e8565b90505f6136f48482850161327b565b5f83015250602082013567ffffffffffffffff811115613717576137166131f9565b5b613723848285016135af565b602083015250604082013567ffffffffffffffff811115613747576137466131f9565b5b61375384828501613699565b60408301525092915050565b5f5f604083850312156137755761377461306a565b5b5f83013567ffffffffffffffff8111156137925761379161306e565b5b61379e858286016133e7565b925050602083013567ffffffffffffffff8111156137bf576137be61306e565b5b6137cb858286016136c6565b9150509250929050565b5f602082840312156137ea576137e961306a565b5b5f6137f78482850161361d565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61382982613800565b9050919050565b6138398161381f565b8114613843575f5ffd5b50565b5f8135905061385481613830565b92915050565b5f5f604083850312156138705761386f61306a565b5b5f61387d85828601613846565b925050602061388e85828601613341565b9150509250929050565b5f67ffffffffffffffff8211156138b2576138b161308a565b5b6138bb8261307a565b9050602081019050919050565b5f6138da6138d584613898565b6130e8565b9050828152602081018484840111156138f6576138f5613076565b5b613901848285613132565b509392505050565b5f82601f83011261391d5761391c613072565b5b813561392d8482602086016138c8565b91505092915050565b5f6020828403121561394b5761394a61306a565b5b5f82013567ffffffffffffffff8111156139685761396761306e565b5b61397484828501613909565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6139af8261397d565b6139b98185613987565b93506139c9818560208601613997565b6139d28161307a565b840191505092915050565b5f6020820190508181035f8301526139f581846139a5565b905092915050565b5f60208284031215613a1257613a1161306a565b5b5f613a1f84828501613846565b91505092915050565b5f5f5f60608486031215613a3f57613a3e61306a565b5b5f84013567ffffffffffffffff811115613a5c57613a5b61306e565b5b613a68868287016131fd565b9350506020613a798682870161361d565b9250506040613a8a8682870161327b565b9150509250925092565b613a9d81613252565b82525050565b5f602082019050613ab65f830184613a94565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82825260208201905092915050565b7f6163636f756e74730000000000000000000000000000000000000000000000005f82015250565b5f613b2d600883613ae9565b9150613b3882613af9565b602082019050919050565b5f6020820190508181035f830152613b5a81613b21565b9050919050565b613b6a816132e9565b8114613b74575f5ffd5b50565b5f81519050613b8581613b61565b92915050565b5f60208284031215613ba057613b9f61306a565b5b5f613bad84828501613b77565b91505092915050565b7f6d696e744e4654000000000000000000000000000000000000000000000000005f82015250565b5f613bea600783613ae9565b9150613bf582613bb6565b602082019050919050565b5f6020820190508181035f830152613c1781613bde565b9050919050565b5f819050919050565b5f613c41613c3c613c37846132e9565b613c1e565b6132e9565b9050919050565b613c5181613c27565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f613c9a8261397d565b613ca48185613c80565b9350613cb4818560208601613997565b613cbd8161307a565b840191505092915050565b5f604083015f8301518482035f860152613ce28282613c90565b91505060208301518482036020860152613cfc8282613c90565b9150508091505092915050565b5f613d148383613cc8565b905092915050565b5f602082019050919050565b5f613d3282613c57565b613d3c8185613c61565b935083602082028501613d4e85613c71565b805f5b85811015613d895784840389528151613d6a8582613d09565b9450613d7583613d1c565b925060208a01995050600181019050613d51565b50829750879550505050505092915050565b5f602083015f8301518482035f860152613db58282613d28565b9150508091505092915050565b613dcb81613252565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f602083015f8301518482035f860152613e148282613c90565b9150508091505092915050565b613e2a81613322565b82525050565b5f604083015f8301518482035f860152613e4a8282613dfa565b9150506020830151613e5f6020860182613e21565b508091505092915050565b5f613e758383613e30565b905092915050565b5f602082019050919050565b5f613e9382613dd1565b613e9d8185613ddb565b935083602082028501613eaf85613deb565b805f5b85811015613eea5784840389528151613ecb8582613e6a565b9450613ed683613e7d565b925060208a01995050600181019050613eb2565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f2e816133ae565b82525050565b5f613f3f8383613f25565b60208301905092915050565b5f602082019050919050565b5f613f6182613efc565b613f6b8185613f06565b9350613f7683613f16565b805f5b83811015613fa6578151613f8d8882613f34565b9750613f9883613f4b565b925050600181019050613f79565b5085935050505092915050565b5f606083015f830151613fc85f860182613dc2565b5060208301518482036020860152613fe08282613e89565b91505060408301518482036040860152613ffa8282613f57565b9150508091505092915050565b5f60808201905061401a5f830187613c48565b6140276020830186613c48565b81810360408301526140398185613d9b565b9050818103606083015261404d8184613fb3565b905095945050505050565b5f67ffffffffffffffff8211156140725761407161308a565b5b602082029050602081019050919050565b5f61409561409084613102565b6130e8565b9050828152602081018484840111156140b1576140b0613076565b5b6140bc848285613997565b509392505050565b5f82601f8301126140d8576140d7613072565b5b81516140e8848260208601614083565b91505092915050565b5f60408284031215614106576141056131f5565b5b61411060406130e8565b90505f82015167ffffffffffffffff81111561412f5761412e6131f9565b5b61413b848285016140c4565b5f83015250602082015167ffffffffffffffff81111561415e5761415d6131f9565b5b61416a848285016140c4565b60208301525092915050565b5f61418861418384614058565b6130e8565b905080838252602082019050602084028301858111156141ab576141aa613467565b5b835b818110156141f257805167ffffffffffffffff8111156141d0576141cf613072565b5b8086016141dd89826140f1565b855260208501945050506020810190506141ad565b5050509392505050565b5f82601f8301126142105761420f613072565b5b8151614220848260208601614176565b91505092915050565b5f6020828403121561423e5761423d6131f5565b5b61424860206130e8565b90505f82015167ffffffffffffffff811115614267576142666131f9565b5b614273848285016141fc565b5f8301525092915050565b5f602082840312156142935761429261306a565b5b5f82015167ffffffffffffffff8111156142b0576142af61306e565b5b6142bc84828501614229565b91505092915050565b5f6142cf82613800565b9050919050565b6142df816142c5565b82525050565b5f6020820190506142f85f8301846142d6565b92915050565b5f8151905061430c81613265565b92915050565b5f60208284031215614327576143266131f5565b5b61433160206130e8565b90505f82015167ffffffffffffffff8111156143505761434f6131f9565b5b61435c848285016140c4565b5f8301525092915050565b5f815190506143758161332b565b92915050565b5f604082840312156143905761438f6131f5565b5b61439a60406130e8565b90505f82015167ffffffffffffffff8111156143b9576143b86131f9565b5b6143c584828501614312565b5f8301525060206143d884828501614367565b60208301525092915050565b5f6143f66143f18461343c565b6130e8565b9050808382526020820190506020840283018581111561441957614418613467565b5b835b8181101561446057805167ffffffffffffffff81111561443e5761443d613072565b5b80860161444b898261437b565b8552602085019450505060208101905061441b565b5050509392505050565b5f82601f83011261447e5761447d613072565b5b815161448e8482602086016143e4565b91505092915050565b5f815190506144a581613607565b92915050565b5f6144bd6144b8846135dc565b6130e8565b905080838252602082019050602084028301858111156144e0576144df613467565b5b835b8181101561450957806144f58882614497565b8452602084019350506020810190506144e2565b5050509392505050565b5f82601f83011261452757614526613072565b5b81516145378482602086016144ab565b91505092915050565b5f60608284031215614555576145546131f5565b5b61455f60606130e8565b90505f61456e848285016142fe565b5f83015250602082015167ffffffffffffffff811115614591576145906131f9565b5b61459d8482850161446a565b602083015250604082015167ffffffffffffffff8111156145c1576145c06131f9565b5b6145cd84828501614513565b60408301525092915050565b5f602082840312156145ee576145ed61306a565b5b5f82015167ffffffffffffffff81111561460b5761460a61306e565b5b61461784828501614540565b91505092915050565b5f6040820190506146335f8301856142d6565b81810360208301526146458184613fb3565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61468582613252565b915061469083613252565b9250828203905067ffffffffffffffff8111156146b0576146af61464e565b5b92915050565b5f602083015f8301518482035f8601526146d08282613c90565b9150508091505092915050565b5f8115159050919050565b6146f1816146dd565b82525050565b61470081613c27565b82525050565b5f602083015f8301518482035f8601526147208282613d28565b9150508091505092915050565b5f606083015f8301516147425f860182613dc2565b506020830151848203602086015261475a8282613e89565b915050604083015184820360408601526147748282613f57565b9150508091505092915050565b5f60a083015f8301516147965f8601826146f7565b5060208301516147a960208601826146f7565b50604083015184820360408601526147c18282614706565b915050606083015184820360608601526147db828261472d565b91505060808301516147f06080860182613dc2565b508091505092915050565b5f8160070b9050919050565b614810816147fb565b82525050565b5f602083015f8301518482035f8601526148308282613c90565b9150508091505092915050565b5f604083015f8301516148525f860182614807565b506020830151848203602086015261486a8282614816565b9150508091505092915050565b5f604083015f83015161488c5f860182614807565b50602083015184820360208601526148a4828261483d565b9150508091505092915050565b5f60a0820190508181035f8301526148c981886146b6565b905081810360208301526148dd8187613fb3565b90506148ec60408301866146e8565b81810360608301526148fe8185614781565b905081810360808301526149128184614877565b90509695505050505050565b5f60208284031215614933576149326131f5565b5b61493d60206130e8565b90505f82015167ffffffffffffffff81111561495c5761495b6131f9565b5b614968848285016140c4565b5f8301525092915050565b5f602082840312156149885761498761306a565b5b5f82015167ffffffffffffffff8111156149a5576149a461306e565b5b6149b18482850161491e565b91505092915050565b5f602082840312156149cf576149ce6131f5565b5b6149d960206130e8565b90505f82015167ffffffffffffffff8111156149f8576149f76131f9565b5b614a04848285016140c4565b5f8301525092915050565b5f60208284031215614a2457614a2361306a565b5b5f82015167ffffffffffffffff811115614a4157614a4061306e565b5b614a4d848285016149ba565b91505092915050565b5f602083015f8301518482035f860152614a708282613c90565b9150508091505092915050565b5f6020820190508181035f830152614a958184614a56565b905092915050565b614aa6816133a5565b8114614ab0575f5ffd5b50565b5f81519050614ac181614a9d565b92915050565b5f60208284031215614adc57614adb61306a565b5b5f614ae984828501614ab3565b91505092915050565b614afb816133a5565b82525050565b5f602082019050614b145f830184614af2565b92915050565b614b23816132e9565b82525050565b614b3281613322565b82525050565b5f606082019050614b4b5f830186614b1a565b614b586020830185614b29565b8181036040830152614b6a8184613fb3565b9050949350505050565b5f602083015f8301518482035f860152614b8e8282613c90565b9150508091505092915050565b5f6020820190508181035f830152614bb38184614b74565b905092915050565b5f819050919050565b5f60ff82169050919050565b5f614bea614be5614be084614bbb565b613c1e565b614bc4565b9050919050565b614bfa81614bd0565b82525050565b5f602082019050614c135f830184614bf1565b92915050565b7f666f6f62617200000000000000000000000000000000000000000000000000005f82015250565b5f614c4d600683613ae9565b9150614c5882614c19565b602082019050919050565b5f6020820190508181035f830152614c7a81614c41565b9050919050565b614c8a816133a5565b8114614c94575f5ffd5b50565b5f81519050614ca581614c81565b92915050565b5f60208284031215614cc057614cbf61306a565b5b5f614ccd84828501614c97565b91505092915050565b7f7472616e73666572416c6c6f77616e6365546f000000000000000000000000005f82015250565b5f614d0a601383613ae9565b9150614d1582614cd6565b602082019050919050565b5f6020820190508181035f830152614d3781614cfe565b9050919050565b5f819050919050565b614d58614d53826133ae565b614d3e565b82525050565b5f614d698284614d47565b60208201915081905092915050565b614d818161381f565b82525050565b5f602082019050614d9a5f830184614d78565b92915050565b5f81519050919050565b5f614db482614da0565b614dbe8185613ae9565b9350614dce818560208601613997565b614dd78161307a565b840191505092915050565b5f6020820190508181035f830152614dfa8184614daa565b905092915050565b7f696e63636f756e746572000000000000000000000000000000000000000000005f82015250565b5f614e36600a83613ae9565b9150614e4182614e02565b602082019050919050565b5f6020820190508181035f830152614e6381614e2a565b9050919050565b7f696e63436f756e746572000000000000000000000000000000000000000000005f82015250565b5f614e9e600a83613ae9565b9150614ea982614e6a565b602082019050919050565b5f6020820190508181035f830152614ecb81614e92565b9050919050565b6b010000000000000000000000815250565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f819050919050565b614f29614f2482614ee4565b614f0f565b82525050565b7604000000b3ee6942000000000000000000000000000000815250565b5f614f5682614ed2565b601582019150614f668284614f18565b601482019150614f7582614f2f565b60118201915081905092915050565b7f65766d00000000000000000000000000000000000000000000000000000000005f82015250565b5f614fb8600383613ae9565b9150614fc382614f84565b602082019050919050565b5f6020820190508181035f830152614fe581614fac565b9050919050565b7f63616c6c436f6e747261637400000000000000000000000000000000000000005f82015250565b5f615020600c83613ae9565b915061502b82614fec565b602082019050919050565b5f6020820190508181035f83015261504d81615014565b9050919050565b5f6060820190506150675f830186613c48565b6150746020830185613c48565b81810360408301526150868184613d9b565b9050949350505050565b7f62616c616e6365000000000000000000000000000000000000000000000000005f82015250565b5f6150c4600783613ae9565b91506150cf82615090565b602082019050919050565b5f6020820190508181035f8301526150f1816150b8565b9050919050565b7f676f7665726e616e6365000000000000000000000000000000000000000000005f82015250565b5f61512c600a83613ae9565b9150615137826150f8565b602082019050919050565b5f6020820190508181035f83015261515981615120565b9050919050565b7f636c61696d436861696e4f776e657273686970000000000000000000000000005f82015250565b5f615194601383613ae9565b915061519f82615160565b602082019050919050565b5f6020820190508181035f8301526151c181615188565b9050919050565b7f6e6f6e2d737461746963000000000000000000000000000000000000000000005f82015250565b5f6151fc600a83613ae9565b9150615207826151c8565b602082019050919050565b5f6020820190508181035f830152615229816151f0565b9050919050565b5f81905092915050565b5f6152448261397d565b61524e8185615230565b935061525e818560208601613997565b80840191505092915050565b5f615275828461523a565b915081905092915050565b7f63616c6c2073686f756c642073756363656564000000000000000000000000005f82015250565b5f6152b4601383613ae9565b91506152bf82615280565b602082019050919050565b5f6020820190508181035f8301526152e1816152a8565b9050919050565b7f73746174696363616c6c20746f20766965772073686f756c64207375636365655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f615342602183613ae9565b915061534d826152e8565b604082019050919050565b5f6020820190508181035f83015261536f81615336565b9050919050565b7f73746174696300000000000000000000000000000000000000000000000000005f82015250565b5f6153aa600683613ae9565b91506153b582615376565b602082019050919050565b5f6020820190508181035f8301526153d78161539e565b9050919050565b7f73746174696363616c6c20746f206e6f6e2d766965772073686f756c642066615f8201527f696c000000000000000000000000000000000000000000000000000000000000602082015250565b5f615438602283613ae9565b9150615443826153de565b604082019050919050565b5f6020820190508181035f8301526154658161542c565b9050919050565b7f6261642061646472657373206c656e67746800000000000000000000000000005f82015250565b5f6154a0601283613ae9565b91506154ab8261546c565b602082019050919050565b5f6020820190508181035f8301526154cd81615494565b9050919050565b5f6154de82613322565b91506154e983613322565b92508282019050808211156155015761550061464e565b5b9291505056fe6080604052348015600e575f5ffd5b5061010e8061001c5f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063bcfb195914602a575b5f5ffd5b60406004803603810190603c919060b2565b6042565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608682605f565b9050919050565b609481607e565b8114609d575f5ffd5b50565b5f8135905060ac81608d565b92915050565b5f6020828403121560c45760c3605b565b5b5f60cf8482850160a0565b9150509291505056fea26469706673582212203d2ac78064d41f18d6fe2ca8a884e1b07e2757dee64d2d7f0e6318e0c70c86fb64736f6c634300081c0033a264697066735822122046bdea30663a70921570c1c4bae8082fe9c19223790df10a3ec9df560fd7b3a764736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/RevertTest.bin b/packages/evm/evmtest/RevertTest.bin index 512e18dba1..96684296be 100644 --- a/packages/evm/evmtest/RevertTest.bin +++ b/packages/evm/evmtest/RevertTest.bin @@ -1 +1 @@ -60806040525f805f6101000a81548163ffffffff021916908363ffffffff160217905550348015602d575f80fd5b5061022c8061003b5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806306661abd146100435780630f1146e914610061578063e3b2f8311461006b575b5f80fd5b61004b610075565b6040516100589190610179565b60405180910390f35b610069610088565b005b6100736100c5565b005b5f8054906101000a900463ffffffff1681565b60015f8054906101000a900463ffffffff166100a491906101bf565b5f806101000a81548163ffffffff021916908363ffffffff16021790555f80fd5b5f3073ffffffffffffffffffffffffffffffffffffffff16630f1146e96040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561010b575f80fd5b505af192505050801561011c575060015b610128575f905061012d565b600190505b8015610137575f80fd5b5f805f9054906101000a900463ffffffff1663ffffffff1614610158575f80fd5b50565b5f63ffffffff82169050919050565b6101738161015b565b82525050565b5f60208201905061018c5f83018461016a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101c98261015b565b91506101d48361015b565b9250828201905063ffffffff8111156101f0576101ef610192565b5b9291505056fea26469706673582212204f9e0ea25ab2b961c890db9a7ab853e3a92eca4f4edd8c055fb11b39fe16704064736f6c634300081a0033 \ No newline at end of file +60806040525f5f5f6101000a81548163ffffffff021916908363ffffffff160217905550348015602d575f5ffd5b5061022e8061003b5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806306661abd146100435780630f1146e914610061578063e3b2f8311461006b575b5f5ffd5b61004b610075565b604051610058919061017b565b60405180910390f35b610069610089565b005b6100736100c7565b005b5f5f9054906101000a900463ffffffff1681565b60015f5f9054906101000a900463ffffffff166100a691906101c1565b5f5f6101000a81548163ffffffff021916908363ffffffff16021790555f5ffd5b5f3073ffffffffffffffffffffffffffffffffffffffff16630f1146e96040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561010d575f5ffd5b505af192505050801561011e575060015b61012a575f905061012f565b600190505b8015610139575f5ffd5b5f5f5f9054906101000a900463ffffffff1663ffffffff161461015a575f5ffd5b50565b5f63ffffffff82169050919050565b6101758161015d565b82525050565b5f60208201905061018e5f83018461016c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101cb8261015d565b91506101d68361015d565b9250828201905063ffffffff8111156101f2576101f1610194565b5b9291505056fea2646970667358221220eace9defe00835eed3903d311e7fb4d85360f23dd8acad858a22bdc14316ff8264736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/SelfDestruct6780.bin b/packages/evm/evmtest/SelfDestruct6780.bin index c83ed905e2..ace0545897 100644 --- a/packages/evm/evmtest/SelfDestruct6780.bin +++ b/packages/evm/evmtest/SelfDestruct6780.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b5061010e8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063bcfb195914602a575b5f80fd5b60406004803603810190603c919060b2565b6042565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608682605f565b9050919050565b609481607e565b8114609d575f80fd5b50565b5f8135905060ac81608d565b92915050565b5f6020828403121560c45760c3605b565b5b5f60cf8482850160a0565b9150509291505056fea2646970667358221220620f1712e103636cea06552d4318eaebfa9d20b5c50fbd6fc580405a558f9fad64736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b5061010e8061001c5f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063bcfb195914602a575b5f5ffd5b60406004803603810190603c919060b2565b6042565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608682605f565b9050919050565b609481607e565b8114609d575f5ffd5b50565b5f8135905060ac81608d565b92915050565b5f6020828403121560c45760c3605b565b5b5f60cf8482850160a0565b9150509291505056fea26469706673582212203d2ac78064d41f18d6fe2ca8a884e1b07e2757dee64d2d7f0e6318e0c70c86fb64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/Storage.bin b/packages/evm/evmtest/Storage.bin index 6ca88fa398..e69ceb66f0 100644 --- a/packages/evm/evmtest/Storage.bin +++ b/packages/evm/evmtest/Storage.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b506040516102653803806102658339818101604052810190602e9190608a565b805f806101000a81548163ffffffff021916908363ffffffff1602179055505060b0565b5f80fd5b5f63ffffffff82169050919050565b606c816056565b81146075575f80fd5b50565b5f815190506084816065565b92915050565b5f60208284031215609c57609b6052565b5b5f60a7848285016078565b91505092915050565b6101a8806100bd5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80632e64cec114610038578063b9e9538214610056575b5f80fd5b610040610072565b60405161004d9190610100565b60405180910390f35b610070600480360381019061006b9190610147565b610089565b005b5f805f9054906101000a900463ffffffff16905090565b805f806101000a81548163ffffffff021916908363ffffffff1602179055507f1216415e6088a976b049b2d1fc9e52c96a2199b400aa37dc4aa9585710d03b87816040516100d79190610100565b60405180910390a150565b5f63ffffffff82169050919050565b6100fa816100e2565b82525050565b5f6020820190506101135f8301846100f1565b92915050565b5f80fd5b610126816100e2565b8114610130575f80fd5b50565b5f813590506101418161011d565b92915050565b5f6020828403121561015c5761015b610119565b5b5f61016984828501610133565b9150509291505056fea2646970667358221220b6a2eaaa26e183d45172682decbc0b1b42dacee37a47886c5d3f7235d250e9d664736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b506040516102653803806102658339818101604052810190602e9190608a565b805f5f6101000a81548163ffffffff021916908363ffffffff1602179055505060b0565b5f5ffd5b5f63ffffffff82169050919050565b606c816056565b81146075575f5ffd5b50565b5f815190506084816065565b92915050565b5f60208284031215609c57609b6052565b5b5f60a7848285016078565b91505092915050565b6101a8806100bd5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80632e64cec114610038578063b9e9538214610056575b5f5ffd5b610040610072565b60405161004d9190610100565b60405180910390f35b610070600480360381019061006b9190610147565b610089565b005b5f5f5f9054906101000a900463ffffffff16905090565b805f5f6101000a81548163ffffffff021916908363ffffffff1602179055507f1216415e6088a976b049b2d1fc9e52c96a2199b400aa37dc4aa9585710d03b87816040516100d79190610100565b60405180910390a150565b5f63ffffffff82169050919050565b6100fa816100e2565b82525050565b5f6020820190506101135f8301846100f1565b92915050565b5f5ffd5b610126816100e2565b8114610130575f5ffd5b50565b5f813590506101418161011d565b92915050565b5f6020828403121561015c5761015b610119565b5b5f61016984828501610133565b9150509291505056fea26469706673582212209116854573166c9900763365c833ae9c965abdc00b43e9a46073837370f90f4364736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/wiki_how_tos/Entropy.bin b/packages/evm/evmtest/wiki_how_tos/Entropy.bin index a9ee318827..9a4be30d9f 100644 --- a/packages/evm/evmtest/wiki_how_tos/Entropy.bin +++ b/packages/evm/evmtest/wiki_how_tos/Entropy.bin @@ -1 +1 @@ -608060405234801561000f575f80fd5b506101b58061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633772d53f1461002d575b5f80fd5b610035610037565b005b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635404bbf76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610095573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100b9919061012c565b90507f2778726dc1b9d6d2ee2628a18174907da485ba8765490e157ddf1202528ed5bc816040516100ea9190610166565b60405180910390a150565b5f80fd5b5f819050919050565b61010b816100f9565b8114610115575f80fd5b50565b5f8151905061012681610102565b92915050565b5f60208284031215610141576101406100f5565b5b5f61014e84828501610118565b91505092915050565b610160816100f9565b82525050565b5f6020820190506101795f830184610157565b9291505056fea2646970667358221220e3bb8588a675e37bee94c832932848ae8fb1f3fd599df748556d7376e3fc2aec64736f6c63430008140033 \ No newline at end of file +6080604052348015600e575f5ffd5b506101b58061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80633772d53f1461002d575b5f5ffd5b610035610037565b005b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635404bbf76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610095573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100b9919061012c565b90507f2778726dc1b9d6d2ee2628a18174907da485ba8765490e157ddf1202528ed5bc816040516100ea9190610166565b60405180910390a150565b5f5ffd5b5f819050919050565b61010b816100f9565b8114610115575f5ffd5b50565b5f8151905061012681610102565b92915050565b5f60208284031215610141576101406100f5565b5b5f61014e84828501610118565b91505092915050565b610160816100f9565b82525050565b5f6020820190506101795f830184610157565b9291505056fea2646970667358221220c1d0fb364459188736d3239a99d9ff5298034f00c83152c947bbedfc46a0345764736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/evmtest/wiki_how_tos/GetBalance.bin b/packages/evm/evmtest/wiki_how_tos/GetBalance.bin index 8da9851c0b..d0dff54676 100644 --- a/packages/evm/evmtest/wiki_how_tos/GetBalance.bin +++ b/packages/evm/evmtest/wiki_how_tos/GetBalance.bin @@ -1 +1 @@ -6080604052348015600e575f80fd5b50610ab28061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806319a5506a1461004e57806341d9834c1461005857806390cdadcd14610074578063cdfd0a661461007e575b5f80fd5b610056610088565b005b610072600480360381019061006d91906106a2565b6101d9565b005b61007c610340565b005b610086610404565b005b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa1580156100e5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061010d91906107c2565b90505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630d90ec7b836040518263ffffffff1660e01b815260040161015d9190610882565b602060405180830381865afa158015610178573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019c91906108d5565b90507f52c249d568f18754049ea99591153f1f0ad8c7ab03a3bcdcf8454bc274e54101816040516101cd919061090f565b60405180910390a15050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015610236573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061025e91906107c2565b90505f60405180602001604052808481525090505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef43e40d83856040518363ffffffff1660e01b81526004016102c292919061094f565b602060405180830381865afa1580156102dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030191906108d5565b90507fab4abdf0d66655ed9c7e1ee2f2aff1d43dbdc0736a3e7078c2be95bcf380057581604051610332919061090f565b60405180910390a150505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa15801561039d573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906103c591906107c2565b90507f28b3d377892d8db500fb9a9bbd4731605ca2a642c3c62a7e64d47b7d42024368815f01516040516103f991906109cc565b60405180910390a150565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015610461573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061048991906107c2565b90505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b019204f836040518263ffffffff1660e01b81526004016104d99190610882565b602060405180830381865afa1580156104f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105189190610a29565b90507f23ce6861f26687742455d6955fcd53a5587ecf279e37422d0cd9636e2a2a9f7f816040516105499190610a63565b60405180910390a15050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105b48261056e565b810181811067ffffffffffffffff821117156105d3576105d261057e565b5b80604052505050565b5f6105e5610555565b90506105f182826105ab565b919050565b5f67ffffffffffffffff8211156106105761060f61057e565b5b6106198261056e565b9050602081019050919050565b828183375f83830152505050565b5f610646610641846105f6565b6105dc565b9050828152602081018484840111156106625761066161056a565b5b61066d848285610626565b509392505050565b5f82601f83011261068957610688610566565b5b8135610699848260208601610634565b91505092915050565b5f602082840312156106b7576106b661055e565b5b5f82013567ffffffffffffffff8111156106d4576106d3610562565b5b6106e084828501610675565b91505092915050565b5f80fd5b5f80fd5b8281835e5f83830152505050565b5f61071161070c846105f6565b6105dc565b90508281526020810184848401111561072d5761072c61056a565b5b6107388482856106f1565b509392505050565b5f82601f83011261075457610753610566565b5b81516107648482602086016106ff565b91505092915050565b5f60208284031215610782576107816106e9565b5b61078c60206105dc565b90505f82015167ffffffffffffffff8111156107ab576107aa6106ed565b5b6107b784828501610740565b5f8301525092915050565b5f602082840312156107d7576107d661055e565b5b5f82015167ffffffffffffffff8111156107f4576107f3610562565b5b6108008482850161076d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61082d82610809565b6108378185610813565b93506108478185602086016106f1565b6108508161056e565b840191505092915050565b5f602083015f8301518482035f8601526108758282610823565b9150508091505092915050565b5f6020820190508181035f83015261089a818461085b565b905092915050565b5f819050919050565b6108b4816108a2565b81146108be575f80fd5b50565b5f815190506108cf816108ab565b92915050565b5f602082840312156108ea576108e961055e565b5b5f6108f7848285016108c1565b91505092915050565b610909816108a2565b82525050565b5f6020820190506109225f830184610900565b92915050565b5f602083015f8301518482035f8601526109428282610823565b9150508091505092915050565b5f6040820190508181035f8301526109678185610928565b9050818103602083015261097b818461085b565b90509392505050565b5f82825260208201905092915050565b5f61099e82610809565b6109a88185610984565b93506109b88185602086016106f1565b6109c18161056e565b840191505092915050565b5f6020820190508181035f8301526109e48184610994565b905092915050565b5f67ffffffffffffffff82169050919050565b610a08816109ec565b8114610a12575f80fd5b50565b5f81519050610a23816109ff565b92915050565b5f60208284031215610a3e57610a3d61055e565b5b5f610a4b84828501610a15565b91505092915050565b610a5d816109ec565b82525050565b5f602082019050610a765f830184610a54565b9291505056fea2646970667358221220f402e3f7945e4c6e1c0fbd71080d66d2443321647f95f9d86d8499a0b44ec42864736f6c634300081a0033 \ No newline at end of file +6080604052348015600e575f5ffd5b50610ab28061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806319a5506a1461004e57806341d9834c1461005857806390cdadcd14610074578063cdfd0a661461007e575b5f5ffd5b610056610088565b005b610072600480360381019061006d91906106a2565b6101d9565b005b61007c610340565b005b610086610404565b005b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa1580156100e5573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061010d91906107c2565b90505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630d90ec7b836040518263ffffffff1660e01b815260040161015d9190610882565b602060405180830381865afa158015610178573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019c91906108d5565b90507f52c249d568f18754049ea99591153f1f0ad8c7ab03a3bcdcf8454bc274e54101816040516101cd919061090f565b60405180910390a15050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015610236573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061025e91906107c2565b90505f60405180602001604052808481525090505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef43e40d83856040518363ffffffff1660e01b81526004016102c292919061094f565b602060405180830381865afa1580156102dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030191906108d5565b90507fab4abdf0d66655ed9c7e1ee2f2aff1d43dbdc0736a3e7078c2be95bcf380057581604051610332919061090f565b60405180910390a150505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa15801561039d573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906103c591906107c2565b90507f28b3d377892d8db500fb9a9bbd4731605ca2a642c3c62a7e64d47b7d42024368815f01516040516103f991906109cc565b60405180910390a150565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f31317496040518163ffffffff1660e01b81526004015f60405180830381865afa158015610461573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061048991906107c2565b90505f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b019204f836040518263ffffffff1660e01b81526004016104d99190610882565b602060405180830381865afa1580156104f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105189190610a29565b90507f23ce6861f26687742455d6955fcd53a5587ecf279e37422d0cd9636e2a2a9f7f816040516105499190610a63565b60405180910390a15050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105b48261056e565b810181811067ffffffffffffffff821117156105d3576105d261057e565b5b80604052505050565b5f6105e5610555565b90506105f182826105ab565b919050565b5f67ffffffffffffffff8211156106105761060f61057e565b5b6106198261056e565b9050602081019050919050565b828183375f83830152505050565b5f610646610641846105f6565b6105dc565b9050828152602081018484840111156106625761066161056a565b5b61066d848285610626565b509392505050565b5f82601f83011261068957610688610566565b5b8135610699848260208601610634565b91505092915050565b5f602082840312156106b7576106b661055e565b5b5f82013567ffffffffffffffff8111156106d4576106d3610562565b5b6106e084828501610675565b91505092915050565b5f5ffd5b5f5ffd5b8281835e5f83830152505050565b5f61071161070c846105f6565b6105dc565b90508281526020810184848401111561072d5761072c61056a565b5b6107388482856106f1565b509392505050565b5f82601f83011261075457610753610566565b5b81516107648482602086016106ff565b91505092915050565b5f60208284031215610782576107816106e9565b5b61078c60206105dc565b90505f82015167ffffffffffffffff8111156107ab576107aa6106ed565b5b6107b784828501610740565b5f8301525092915050565b5f602082840312156107d7576107d661055e565b5b5f82015167ffffffffffffffff8111156107f4576107f3610562565b5b6108008482850161076d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61082d82610809565b6108378185610813565b93506108478185602086016106f1565b6108508161056e565b840191505092915050565b5f602083015f8301518482035f8601526108758282610823565b9150508091505092915050565b5f6020820190508181035f83015261089a818461085b565b905092915050565b5f819050919050565b6108b4816108a2565b81146108be575f5ffd5b50565b5f815190506108cf816108ab565b92915050565b5f602082840312156108ea576108e961055e565b5b5f6108f7848285016108c1565b91505092915050565b610909816108a2565b82525050565b5f6020820190506109225f830184610900565b92915050565b5f602083015f8301518482035f8601526109428282610823565b9150508091505092915050565b5f6040820190508181035f8301526109678185610928565b9050818103602083015261097b818461085b565b90509392505050565b5f82825260208201905092915050565b5f61099e82610809565b6109a88185610984565b93506109b88185602086016106f1565b6109c18161056e565b840191505092915050565b5f6020820190508181035f8301526109e48184610994565b905092915050565b5f67ffffffffffffffff82169050919050565b610a08816109ec565b8114610a12575f5ffd5b50565b5f81519050610a23816109ff565b92915050565b5f60208284031215610a3e57610a3d61055e565b5b5f610a4b84828501610a15565b91505092915050565b610a5d816109ec565b82525050565b5f602082019050610a765f830184610a54565b9291505056fea264697066735822122081a24b5aad0fdf9c4521700149a0ad300d18c8cb12a6867b9ef525e9f7c3a12664736f6c634300081c0033 \ No newline at end of file diff --git a/packages/evm/jsonrpc/jsonrpctest/jsonrpc_test.go b/packages/evm/jsonrpc/jsonrpctest/jsonrpc_test.go index 335f7d8120..61143a374a 100644 --- a/packages/evm/jsonrpc/jsonrpctest/jsonrpc_test.go +++ b/packages/evm/jsonrpc/jsonrpctest/jsonrpc_test.go @@ -589,7 +589,7 @@ func TestRPCTraceTx(t *testing.T) { require.Equal(t, "0x7b", trace1.Value.String()) expectedInput, err := contractABI.Pack("sendTo", common.Address{0x1}, big.NewInt(1)) require.NoError(t, err) - require.Equal(t, expectedInput, trace1.Input) + require.Equal(t, expectedInput, []byte(trace1.Input)) require.Empty(t, trace1.Error) require.Empty(t, trace1.RevertReason) require.Equal(t, "0x0", trace1.Gas.String()) @@ -725,7 +725,7 @@ func TestRPCTraceBlock(t *testing.T) { require.Equal(t, "0x7b", trace1.Value.String()) expectedInput, err := contractABI.Pack("sendTo", common.Address{0x1}, big.NewInt(2)) require.NoError(t, err) - require.Equal(t, expectedInput, trace1.Input) + require.Equal(t, expectedInput, []byte(trace1.Input)) require.Empty(t, trace1.Error) require.Empty(t, trace1.RevertReason) require.Equal(t, "0x0", trace1.Gas.String()) @@ -747,7 +747,7 @@ func TestRPCTraceBlock(t *testing.T) { require.Equal(t, "0x141", trace2.Value.String()) expectedInput, err = contractABI.Pack("sendTo", common.Address{0x2}, big.NewInt(3)) require.NoError(t, err) - require.Equal(t, expectedInput, trace2.Input) + require.Equal(t, expectedInput, []byte(trace2.Input)) require.Empty(t, trace2.Error) require.Empty(t, trace2.RevertReason) require.Equal(t, "0x0", trace2.Gas.String()) @@ -807,7 +807,7 @@ func TestRPCBlockReceipt(t *testing.T) { context.Background(), &resceipts, "eth_getBlockReceipts", - env.BlockNumber()) + hexutil.EncodeUint64(env.BlockNumber())) require.NoError(t, err) require.Len(t, resceipts, 2) diff --git a/packages/evm/jsonrpc/service.go b/packages/evm/jsonrpc/service.go index bcf08e138c..44624394c2 100644 --- a/packages/evm/jsonrpc/service.go +++ b/packages/evm/jsonrpc/service.go @@ -453,6 +453,11 @@ func (e *EthService) Logs(ctx context.Context, q *RPCFilterQuery) (*rpc.Subscrip func (e *EthService) GetBlockReceipts(blockNumber hexutil.Uint64) ([]map[string]interface{}, error) { return withMetrics(e.metrics, "eth_getBlockReceipts", func() ([]map[string]interface{}, error) { + feePolicy, err := e.evmChain.backend.FeePolicy(uint32(blockNumber)) + if err != nil { + return nil, err + } + receipts, txs, err := e.evmChain.GetBlockReceipts(rpc.BlockNumber(blockNumber)) if err != nil { return []map[string]interface{}{}, e.resolveError(err) @@ -465,6 +470,11 @@ func (e *EthService) GetBlockReceipts(blockNumber hexutil.Uint64) ([]map[string] result := make([]map[string]interface{}, len(receipts)) for i, receipt := range receipts { effectiveGasPrice := txs[i].GasPrice() + if effectiveGasPrice.Sign() == 0 && !feePolicy.GasPerToken.IsEmpty() { + // tx sent before gasPrice was mandatory + effectiveGasPrice = feePolicy.DefaultGasPriceFullDecimals(parameters.L1().BaseToken.Decimals) + } + result[i] = RPCMarshalReceipt(receipt, txs[i], effectiveGasPrice) } diff --git a/packages/evm/jsonrpc/types.go b/packages/evm/jsonrpc/types.go index 5434daf2bf..0f0ae1201a 100644 --- a/packages/evm/jsonrpc/types.go +++ b/packages/evm/jsonrpc/types.go @@ -195,6 +195,7 @@ func rpcMarshalLogs(r *types.Receipt) []interface{} { "address": log.Address, "data": hexutil.Bytes(log.Data), "topics": log.Topics, + "removed": log.Removed, } } return ret diff --git a/packages/testutil/testdbhash/TestDepositNFTWithMinStorageDeposit-accounts.hex b/packages/testutil/testdbhash/TestDepositNFTWithMinStorageDeposit-accounts.hex index b20b9e681a..acc398215a 100644 --- a/packages/testutil/testdbhash/TestDepositNFTWithMinStorageDeposit-accounts.hex +++ b/packages/testutil/testdbhash/TestDepositNFTWithMinStorageDeposit-accounts.hex @@ -1 +1 @@ -0xd47bac88135e5c7cce511a77283488e0c0cd855d7a92be7b5871c0e2abde59fb +0x27d601a0d1b77d6fe910f1c82ce2b9a54d2e101e649296fad1c5fc27f2dcb254 diff --git a/packages/testutil/testdbhash/TestERC20NativeTokensWithExternalFoundry-evm.hex b/packages/testutil/testdbhash/TestERC20NativeTokensWithExternalFoundry-evm.hex index 51d38f2551..a35d9fd382 100644 --- a/packages/testutil/testdbhash/TestERC20NativeTokensWithExternalFoundry-evm.hex +++ b/packages/testutil/testdbhash/TestERC20NativeTokensWithExternalFoundry-evm.hex @@ -1 +1 @@ -0x34c39b96da1afa50702c2d456b95b5f1c63101515ec732d739241509554038fe +0x969ce6a8a3eb094e8c51a156ef16ebbf8b1e02782afc652128edb39ca4a3b44e diff --git a/packages/testutil/testdbhash/TestFoundries-max_supply_10,_mintTokens_5-accounts.hex b/packages/testutil/testdbhash/TestFoundries-max_supply_10,_mintTokens_5-accounts.hex index 1d16f15e4f..bb2ed1c407 100644 --- a/packages/testutil/testdbhash/TestFoundries-max_supply_10,_mintTokens_5-accounts.hex +++ b/packages/testutil/testdbhash/TestFoundries-max_supply_10,_mintTokens_5-accounts.hex @@ -1 +1 @@ -0x50c6164b6052b8b65f8536f380849a418873db19005cd6f3fa516e254c07e54a +0x8814109a3dbf094cc694262c2150cd937996a4f0a12afa4900a4504c51b59dbe diff --git a/packages/testutil/testdbhash/TestGetEvents-blocklog.hex b/packages/testutil/testdbhash/TestGetEvents-blocklog.hex index 5dd8c4b8e9..ffb05ceea2 100644 --- a/packages/testutil/testdbhash/TestGetEvents-blocklog.hex +++ b/packages/testutil/testdbhash/TestGetEvents-blocklog.hex @@ -1 +1 @@ -0xabbf03253c5f271abcf9c4721d21e27e42b00291623f77dfd7fd90cdca69824c +0x609222d6096753512e5543d51218b5c2950ee07eeb93d4912bdcc50c0a8bf664 diff --git a/packages/testutil/testdbhash/TestInitLoad.hex b/packages/testutil/testdbhash/TestInitLoad.hex index 2c36a2d94d..469c33d108 100644 --- a/packages/testutil/testdbhash/TestInitLoad.hex +++ b/packages/testutil/testdbhash/TestInitLoad.hex @@ -1 +1 @@ -0x7b598408e002117a9b77f12ae4208b723c5d03a76fd952d4c4995155b14c7e2c +0x85c3e954354c1625a58dc9d149b05fd5ec7af25a632b952e5608cd326eaed6e4 diff --git a/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection1-accounts.hex b/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection1-accounts.hex index 8ca83ac8ca..e201ed1ef4 100644 --- a/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection1-accounts.hex +++ b/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection1-accounts.hex @@ -1 +1 @@ -0xa4cfe59bbd32ef63df2dfdb4c620394563cb1f62668100e2a253fc88a0cd82b8 +0x5b578ec84f23190aa08fc990cd3aabae40e0f576f36cdbb076240cf093cdeda1 diff --git a/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection2-accounts.hex b/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection2-accounts.hex index e914f74ca0..9c30dd31ba 100644 --- a/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection2-accounts.hex +++ b/packages/testutil/testdbhash/TestNFTMint-mint_to_self,_then_mint_from_it_as_a_collection2-accounts.hex @@ -1 +1 @@ -0xabf08f5101b2c9a9d1fb41f0430e997b8c60d0126b3a0f697ff7494f63b7bc24 +0x8e9cbef264c51a883a6d29b22bb61bc2844ed8a20613271080b49ab24bac34d9 diff --git a/packages/testutil/testdbhash/TestSelfDestruct-evm.hex b/packages/testutil/testdbhash/TestSelfDestruct-evm.hex index 24b4fbf621..a46594e652 100644 --- a/packages/testutil/testdbhash/TestSelfDestruct-evm.hex +++ b/packages/testutil/testdbhash/TestSelfDestruct-evm.hex @@ -1 +1 @@ -0xa35142e045b50d36fb1853eba7948939b9f375abc6ef952331cf9efe043c1f4a +0x0e572f50d2e5f4ded91cd994106f2ed8b71622c1414049bcafb154ec7ed486a8 diff --git a/packages/testutil/testdbhash/TestSendBaseTokens-evm.hex b/packages/testutil/testdbhash/TestSendBaseTokens-evm.hex index d018c769e2..ebf982e0f2 100644 --- a/packages/testutil/testdbhash/TestSendBaseTokens-evm.hex +++ b/packages/testutil/testdbhash/TestSendBaseTokens-evm.hex @@ -1 +1 @@ -0xf4cc6ebc75591d8d2bb28e93a6128baee5d93b3fd27887d4ca0e415daa8984f5 +0xaf248c4490041dc9b9174d14acea24b6851eaf244ad658eafe532b4caedfbcdc diff --git a/packages/testutil/testdbhash/TestStorageContract-evm.hex b/packages/testutil/testdbhash/TestStorageContract-evm.hex index ee30a49252..a76df67df7 100644 --- a/packages/testutil/testdbhash/TestStorageContract-evm.hex +++ b/packages/testutil/testdbhash/TestStorageContract-evm.hex @@ -1 +1 @@ -0xa0b861838e8194d49f4ef49aa95395bc62ee0bb6661ee009ba9593a0f334cb03 +0x53e4d70142b58c830340ea3b8065453d5aba488ebfd0562ebb38611feb8625c3 diff --git a/packages/testutil/testdbhash/TestUnprocessableWithPruning-blocklog.hex b/packages/testutil/testdbhash/TestUnprocessableWithPruning-blocklog.hex index f32a9731a5..59ec5ff9e0 100644 --- a/packages/testutil/testdbhash/TestUnprocessableWithPruning-blocklog.hex +++ b/packages/testutil/testdbhash/TestUnprocessableWithPruning-blocklog.hex @@ -1 +1 @@ -0xe65fd873c61e74d8a89a6c7e67470a0be8a5b7c3a8933fdcc9603988c5d5db13 +0x295658bd37334905eab78fea5107b27eab79e9d5cf0a2720168036590d9be6af diff --git a/packages/vm/core/evm/evmtest/evm_test.go b/packages/vm/core/evm/evmtest/evm_test.go index da020a4401..6c9f9e48f7 100644 --- a/packages/vm/core/evm/evmtest/evm_test.go +++ b/packages/vm/core/evm/evmtest/evm_test.go @@ -2066,7 +2066,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: nil, expectedError: "insufficient gas price: got 0, minimum is 10000000000", - gasBurned: 168098, + gasBurned: 168085, feeCharged: 1681, }, { @@ -2075,7 +2075,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: big.NewInt(9999999999), expectedError: "insufficient gas price: got 9999999999, minimum is 10000000000", - gasBurned: 168098, + gasBurned: 168085, feeCharged: 1681, }, { @@ -2083,7 +2083,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { gasPerToken: util.Ratio32{A: 100, B: 1}, // default: 1 base token = 100 gas units evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: big.NewInt(10000000000), - gasBurned: 25883, + gasBurned: 25882, feeCharged: 259, }, { @@ -2091,7 +2091,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { gasPerToken: util.Ratio32{A: 100, B: 1}, // default: 1 base token = 100 gas units evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: big.NewInt(2 * 10000000000), - gasBurned: 25883, + gasBurned: 25882, feeCharged: 2 * 259, }, { @@ -2099,7 +2099,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { gasPerToken: util.Ratio32{A: 100, B: 1}, // default: 1 base token = 100 gas units evmGasRatio: util.Ratio32{A: 1, B: 2}, txGasPrice: big.NewInt(2 * 10000000000), - gasBurned: (25883 + 1) / 2, + gasBurned: (25882 + 1) / 2, feeCharged: 2 * 259 / 2, }, { @@ -2108,7 +2108,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: big.NewInt(19999999999), expectedError: "insufficient gas price: got 19999999999, minimum is 20000000000", - gasBurned: 168098, + gasBurned: 168085, feeCharged: 2 * 1681, }, { @@ -2116,7 +2116,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { gasPerToken: util.Ratio32{A: 50, B: 1}, // 1 base token = 50 gas units evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: big.NewInt(2 * 10000000000), - gasBurned: 25883, + gasBurned: 25882, feeCharged: 2 * 259, }, { @@ -2124,7 +2124,7 @@ func TestEVMGasPriceMismatch(t *testing.T) { gasPerToken: util.Ratio32{A: 50, B: 1}, // 1 base token = 50 gas units evmGasRatio: util.Ratio32{A: 1, B: 1}, // default txGasPrice: big.NewInt(2 * 2 * 10000000000), - gasBurned: 25883, + gasBurned: 25882, feeCharged: 2 * 2 * 259, }, } { diff --git a/packages/vm/core/evm/iscmagic/ERC20BaseTokens.bin-runtime b/packages/vm/core/evm/iscmagic/ERC20BaseTokens.bin-runtime index 43e78a409f..f0be12c185 100644 --- a/packages/vm/core/evm/iscmagic/ERC20BaseTokens.bin-runtime +++ b/packages/vm/core/evm/iscmagic/ERC20BaseTokens.bin-runtime @@ -1 +1 @@ -608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610d59565b60405180910390f35b6100cd60048036038101906100c89190610e17565b61028b565b6040516100da9190610e6f565b60405180910390f35b6100eb610379565b6040516100f89190610e97565b60405180910390f35b61011b60048036038101906101169190610eb0565b610407565b6040516101289190610e6f565b60405180910390f35b61013961061d565b6040516101469190610f1b565b60405180910390f35b61016960048036038101906101649190610f34565b6106ab565b6040516101769190610e97565b60405180910390f35b6101876107dc565b6040516101949190610d59565b60405180910390f35b6101b760048036038101906101b29190610e17565b61086b565b6040516101c49190610e6f565b60405180910390f35b6101e760048036038101906101e29190610f5f565b6109ce565b6040516101f49190610e97565b60405180910390f35b606073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa15801561025b573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061028391906111ae565b5f0151905090565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663173263c63385856040518463ffffffff1660e01b81526004016102dd93929190611204565b5f604051808303815f87803b1580156102f4575f80fd5b505af1158015610306573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103679190610e97565b60405180910390a36001905092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103d6573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906103fe91906111ae565b60600151905090565b5f67ffffffffffffffff8016821115610455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044c90611283565b60405180910390fd5b61045d610cac565b82815f019067ffffffffffffffff16908167ffffffffffffffff168152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e2d3c4e8633846040518463ffffffff1660e01b81526004016104cd93929190611565565b5f604051808303815f87803b1580156104e4575f80fd5b505af11580156104f6573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105ac5773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b815260040161057e93929190611565565b5f604051808303815f87803b158015610595575f80fd5b505af11580156105a7573d5f803e3d5ffd5b505050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106099190610e97565b60405180910390a360019150509392505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa15801561067a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906106a291906111ae565b60400151905090565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072e91906115cb565b90505f61073b8483610a7a565b905073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b019204f826040518263ffffffff1660e01b815260040161078a919061161d565b602060405180830381865afa1580156107a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c99190611667565b67ffffffffffffffff1692505050919050565b606073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa15801561083a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061086291906111ae565b60200151905090565b5f67ffffffffffffffff80168211156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090611283565b60405180910390fd5b6108c1610cac565b82815f019067ffffffffffffffff16908167ffffffffffffffff168152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b815260040161093193929190611565565b5f604051808303815f87803b158015610948575f80fd5b505af115801561095a573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516109bb9190610e97565b60405180910390a3600191505092915050565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630af4187d85856040518363ffffffff1660e01b8152600401610a1f929190611692565b5f60405180830381865afa158015610a39573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a619190611a7a565b9050805f015167ffffffffffffffff1691505092915050565b610a82610cd6565b5f82604051602001610a949190611ae1565b60405160208183030381529060405290505f84604051602001610ab79190611b40565b6040516020818303038152906040529050610ad0610cd6565b825182516001610ae09190611b87565b610aea9190611b87565b67ffffffffffffffff811115610b0357610b02610fa1565b5b6040519080825280601f01601f191660200182016040528015610b355781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610b5857610b57611bba565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5b8351811015610c0c57838181518110610ba457610ba3611bba565b5b602001015160f81c60f81b825f0151600183610bc09190611b87565b81518110610bd157610bd0611bba565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610b88565b505f5b8251811015610c9f57828181518110610c2b57610c2a611bba565b5b602001015160f81c60f81b825f01518551600184610c499190611b87565b610c539190611b87565b81518110610c6457610c63611bba565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610c0f565b5080935050505092915050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060200160405280606081525090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d2b82610ce9565b610d358185610cf3565b9350610d45818560208601610d03565b610d4e81610d11565b840191505092915050565b5f6020820190508181035f830152610d718184610d21565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610db382610d8a565b9050919050565b610dc381610da9565b8114610dcd575f80fd5b50565b5f81359050610dde81610dba565b92915050565b5f819050919050565b610df681610de4565b8114610e00575f80fd5b50565b5f81359050610e1181610ded565b92915050565b5f8060408385031215610e2d57610e2c610d82565b5b5f610e3a85828601610dd0565b9250506020610e4b85828601610e03565b9150509250929050565b5f8115159050919050565b610e6981610e55565b82525050565b5f602082019050610e825f830184610e60565b92915050565b610e9181610de4565b82525050565b5f602082019050610eaa5f830184610e88565b92915050565b5f805f60608486031215610ec757610ec6610d82565b5b5f610ed486828701610dd0565b9350506020610ee586828701610dd0565b9250506040610ef686828701610e03565b9150509250925092565b5f60ff82169050919050565b610f1581610f00565b82525050565b5f602082019050610f2e5f830184610f0c565b92915050565b5f60208284031215610f4957610f48610d82565b5b5f610f5684828501610dd0565b91505092915050565b5f8060408385031215610f7557610f74610d82565b5b5f610f8285828601610dd0565b9250506020610f9385828601610dd0565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610fd782610d11565b810181811067ffffffffffffffff82111715610ff657610ff5610fa1565b5b80604052505050565b5f611008610d79565b90506110148282610fce565b919050565b5f80fd5b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561103f5761103e610fa1565b5b61104882610d11565b9050602081019050919050565b5f61106761106284611025565b610fff565b90508281526020810184848401111561108357611082611021565b5b61108e848285610d03565b509392505050565b5f82601f8301126110aa576110a961101d565b5b81516110ba848260208601611055565b91505092915050565b6110cc81610f00565b81146110d6575f80fd5b50565b5f815190506110e7816110c3565b92915050565b5f815190506110fb81610ded565b92915050565b5f6080828403121561111657611115610f9d565b5b6111206080610fff565b90505f82015167ffffffffffffffff81111561113f5761113e611019565b5b61114b84828501611096565b5f83015250602082015167ffffffffffffffff81111561116e5761116d611019565b5b61117a84828501611096565b602083015250604061118e848285016110d9565b60408301525060606111a2848285016110ed565b60608301525092915050565b5f602082840312156111c3576111c2610d82565b5b5f82015167ffffffffffffffff8111156111e0576111df610d86565b5b6111ec84828501611101565b91505092915050565b6111fe81610da9565b82525050565b5f6060820190506112175f8301866111f5565b61122460208301856111f5565b6112316040830184610e88565b949350505050565b7f616d6f756e7420697320746f6f206c61726765000000000000000000000000005f82015250565b5f61126d601383610cf3565b915061127882611239565b602082019050919050565b5f6020820190508181035f83015261129a81611261565b9050919050565b5f67ffffffffffffffff82169050919050565b6112bd816112a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611310826112ec565b61131a81856112f6565b935061132a818560208601610d03565b61133381610d11565b840191505092915050565b5f602083015f8301518482035f8601526113588282611306565b9150508091505092915050565b61136e81610de4565b82525050565b5f604083015f8301518482035f86015261138e828261133e565b91505060208301516113a36020860182611365565b508091505092915050565b5f6113b98383611374565b905092915050565b5f602082019050919050565b5f6113d7826112c3565b6113e181856112cd565b9350836020820285016113f3856112dd565b805f5b8581101561142e578484038952815161140f85826113ae565b945061141a836113c1565b925060208a019950506001810190506113f6565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f61147c82611469565b9050919050565b61148c81611472565b82525050565b5f61149d8383611483565b60208301905092915050565b5f602082019050919050565b5f6114bf82611440565b6114c9818561144a565b93506114d48361145a565b805f5b838110156115045781516114eb8882611492565b97506114f6836114a9565b9250506001810190506114d7565b5085935050505092915050565b5f606083015f8301516115265f8601826112b4565b506020830151848203602086015261153e82826113cd565b9150506040830151848203604086015261155882826114b5565b9150508091505092915050565b5f6060820190506115785f8301866111f5565b61158560208301856111f5565b81810360408301526115978184611511565b9050949350505050565b6115aa81611469565b81146115b4575f80fd5b50565b5f815190506115c5816115a1565b92915050565b5f602082840312156115e0576115df610d82565b5b5f6115ed848285016115b7565b91505092915050565b5f602083015f8301518482035f8601526116108282611306565b9150508091505092915050565b5f6020820190508181035f83015261163581846115f6565b905092915050565b611646816112a1565b8114611650575f80fd5b50565b5f815190506116618161163d565b92915050565b5f6020828403121561167c5761167b610d82565b5b5f61168984828501611653565b91505092915050565b5f6040820190506116a55f8301856111f5565b6116b260208301846111f5565b9392505050565b5f67ffffffffffffffff8211156116d3576116d2610fa1565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff82111561170257611701610fa1565b5b61170b82610d11565b9050602081019050919050565b5f61172a611725846116e8565b610fff565b90508281526020810184848401111561174657611745611021565b5b611751848285610d03565b509392505050565b5f82601f83011261176d5761176c61101d565b5b815161177d848260208601611718565b91505092915050565b5f6020828403121561179b5761179a610f9d565b5b6117a56020610fff565b90505f82015167ffffffffffffffff8111156117c4576117c3611019565b5b6117d084828501611759565b5f8301525092915050565b5f604082840312156117f0576117ef610f9d565b5b6117fa6040610fff565b90505f82015167ffffffffffffffff81111561181957611818611019565b5b61182584828501611786565b5f830152506020611838848285016110ed565b60208301525092915050565b5f611856611851846116b9565b610fff565b90508083825260208201905060208402830185811115611879576118786116e4565b5b835b818110156118c057805167ffffffffffffffff81111561189e5761189d61101d565b5b8086016118ab89826117db565b8552602085019450505060208101905061187b565b5050509392505050565b5f82601f8301126118de576118dd61101d565b5b81516118ee848260208601611844565b91505092915050565b5f67ffffffffffffffff82111561191157611910610fa1565b5b602082029050602081019050919050565b61192b81611469565b8114611935575f80fd5b50565b5f8151905061194681611922565b92915050565b5f61195e611959846118f7565b610fff565b90508083825260208201905060208402830185811115611981576119806116e4565b5b835b818110156119aa57806119968882611938565b845260208401935050602081019050611983565b5050509392505050565b5f82601f8301126119c8576119c761101d565b5b81516119d884826020860161194c565b91505092915050565b5f606082840312156119f6576119f5610f9d565b5b611a006060610fff565b90505f611a0f84828501611653565b5f83015250602082015167ffffffffffffffff811115611a3257611a31611019565b5b611a3e848285016118ca565b602083015250604082015167ffffffffffffffff811115611a6257611a61611019565b5b611a6e848285016119b4565b60408301525092915050565b5f60208284031215611a8f57611a8e610d82565b5b5f82015167ffffffffffffffff811115611aac57611aab610d86565b5b611ab8848285016119e1565b91505092915050565b5f819050919050565b611adb611ad682611472565b611ac1565b82525050565b5f611aec8284611aca565b60208201915081905092915050565b5f8160601b9050919050565b5f611b1182611afb565b9050919050565b5f611b2282611b07565b9050919050565b611b3a611b3582610da9565b611b18565b82525050565b5f611b4b8284611b29565b60148201915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b9182610de4565b9150611b9c83610de4565b9250828201905080821115611bb457611bb3611b5a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122062a8b64024fec9bcec6f907bcb502f89a42ec4282db84a1ab897d4dd9ef9e72b64736f6c634300081a0033 \ No newline at end of file +608060405234801561000f575f5ffd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f5ffd5b61009d6101fd565b6040516100aa9190610d5f565b60405180910390f35b6100cd60048036038101906100c89190610e1d565b61028b565b6040516100da9190610e75565b60405180910390f35b6100eb610379565b6040516100f89190610e9d565b60405180910390f35b61011b60048036038101906101169190610eb6565b610407565b6040516101289190610e75565b60405180910390f35b61013961061d565b6040516101469190610f21565b60405180910390f35b61016960048036038101906101649190610f3a565b6106ab565b6040516101769190610e9d565b60405180910390f35b6101876107dc565b6040516101949190610d5f565b60405180910390f35b6101b760048036038101906101b29190610e1d565b61086b565b6040516101c49190610e75565b60405180910390f35b6101e760048036038101906101e29190610f65565b6109ce565b6040516101f49190610e9d565b60405180910390f35b606073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa15801561025b573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061028391906111b4565b5f0151905090565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663173263c63385856040518463ffffffff1660e01b81526004016102dd9392919061120a565b5f604051808303815f87803b1580156102f4575f5ffd5b505af1158015610306573d5f5f3e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103679190610e9d565b60405180910390a36001905092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa1580156103d6573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906103fe91906111b4565b60600151905090565b5f67ffffffffffffffff8016821115610455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044c90611289565b60405180910390fd5b61045d610cb2565b82815f019067ffffffffffffffff16908167ffffffffffffffff168152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e2d3c4e8633846040518463ffffffff1660e01b81526004016104cd9392919061156b565b5f604051808303815f87803b1580156104e4575f5ffd5b505af11580156104f6573d5f5f3e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105ac5773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b815260040161057e9392919061156b565b5f604051808303815f87803b158015610595575f5ffd5b505af11580156105a7573d5f5f3e3d5ffd5b505050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106099190610e9d565b60405180910390a360019150509392505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa15801561067a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906106a291906111b4565b60400151905090565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072e91906115d1565b90505f61073b8483610a7a565b905073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b019204f826040518263ffffffff1660e01b815260040161078a9190611623565b602060405180830381865afa1580156107a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c9919061166d565b67ffffffffffffffff1692505050919050565b606073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663aaa89f256040518163ffffffff1660e01b81526004015f60405180830381865afa15801561083a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061086291906111b4565b60200151905090565b5f67ffffffffffffffff80168211156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090611289565b60405180910390fd5b6108c1610cb2565b82815f019067ffffffffffffffff16908167ffffffffffffffff168152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b81526004016109319392919061156b565b5f604051808303815f87803b158015610948575f5ffd5b505af115801561095a573d5f5f3e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516109bb9190610e9d565b60405180910390a3600191505092915050565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630af4187d85856040518363ffffffff1660e01b8152600401610a1f929190611698565b5f60405180830381865afa158015610a39573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a619190611a80565b9050805f015167ffffffffffffffff1691505092915050565b610a82610cdc565b5f82604051602001610a949190611ae7565b60405160208183030381529060405290505f84604051602001610ab79190611b46565b6040516020818303038152906040529050610ad0610cdc565b825182516001610ae09190611b8d565b610aea9190611b8d565b67ffffffffffffffff811115610b0357610b02610fa7565b5b6040519080825280601f01601f191660200182016040528015610b355781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610b5857610b57611bc0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5f90505b8351811015610c0f57838181518110610ba757610ba6611bc0565b5b602001015160f81c60f81b825f0151600183610bc39190611b8d565b81518110610bd457610bd3611bc0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610b8b565b505f5f90505b8251811015610ca557828181518110610c3157610c30611bc0565b5b602001015160f81c60f81b825f01518551600184610c4f9190611b8d565b610c599190611b8d565b81518110610c6a57610c69611bc0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610c15565b5080935050505092915050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060200160405280606081525090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d3182610cef565b610d3b8185610cf9565b9350610d4b818560208601610d09565b610d5481610d17565b840191505092915050565b5f6020820190508181035f830152610d778184610d27565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610db982610d90565b9050919050565b610dc981610daf565b8114610dd3575f5ffd5b50565b5f81359050610de481610dc0565b92915050565b5f819050919050565b610dfc81610dea565b8114610e06575f5ffd5b50565b5f81359050610e1781610df3565b92915050565b5f5f60408385031215610e3357610e32610d88565b5b5f610e4085828601610dd6565b9250506020610e5185828601610e09565b9150509250929050565b5f8115159050919050565b610e6f81610e5b565b82525050565b5f602082019050610e885f830184610e66565b92915050565b610e9781610dea565b82525050565b5f602082019050610eb05f830184610e8e565b92915050565b5f5f5f60608486031215610ecd57610ecc610d88565b5b5f610eda86828701610dd6565b9350506020610eeb86828701610dd6565b9250506040610efc86828701610e09565b9150509250925092565b5f60ff82169050919050565b610f1b81610f06565b82525050565b5f602082019050610f345f830184610f12565b92915050565b5f60208284031215610f4f57610f4e610d88565b5b5f610f5c84828501610dd6565b91505092915050565b5f5f60408385031215610f7b57610f7a610d88565b5b5f610f8885828601610dd6565b9250506020610f9985828601610dd6565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610fdd82610d17565b810181811067ffffffffffffffff82111715610ffc57610ffb610fa7565b5b80604052505050565b5f61100e610d7f565b905061101a8282610fd4565b919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82111561104557611044610fa7565b5b61104e82610d17565b9050602081019050919050565b5f61106d6110688461102b565b611005565b90508281526020810184848401111561108957611088611027565b5b611094848285610d09565b509392505050565b5f82601f8301126110b0576110af611023565b5b81516110c084826020860161105b565b91505092915050565b6110d281610f06565b81146110dc575f5ffd5b50565b5f815190506110ed816110c9565b92915050565b5f8151905061110181610df3565b92915050565b5f6080828403121561111c5761111b610fa3565b5b6111266080611005565b90505f82015167ffffffffffffffff8111156111455761114461101f565b5b6111518482850161109c565b5f83015250602082015167ffffffffffffffff8111156111745761117361101f565b5b6111808482850161109c565b6020830152506040611194848285016110df565b60408301525060606111a8848285016110f3565b60608301525092915050565b5f602082840312156111c9576111c8610d88565b5b5f82015167ffffffffffffffff8111156111e6576111e5610d8c565b5b6111f284828501611107565b91505092915050565b61120481610daf565b82525050565b5f60608201905061121d5f8301866111fb565b61122a60208301856111fb565b6112376040830184610e8e565b949350505050565b7f616d6f756e7420697320746f6f206c61726765000000000000000000000000005f82015250565b5f611273601383610cf9565b915061127e8261123f565b602082019050919050565b5f6020820190508181035f8301526112a081611267565b9050919050565b5f67ffffffffffffffff82169050919050565b6112c3816112a7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611316826112f2565b61132081856112fc565b9350611330818560208601610d09565b61133981610d17565b840191505092915050565b5f602083015f8301518482035f86015261135e828261130c565b9150508091505092915050565b61137481610dea565b82525050565b5f604083015f8301518482035f8601526113948282611344565b91505060208301516113a9602086018261136b565b508091505092915050565b5f6113bf838361137a565b905092915050565b5f602082019050919050565b5f6113dd826112c9565b6113e781856112d3565b9350836020820285016113f9856112e3565b805f5b85811015611434578484038952815161141585826113b4565b9450611420836113c7565b925060208a019950506001810190506113fc565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f6114828261146f565b9050919050565b61149281611478565b82525050565b5f6114a38383611489565b60208301905092915050565b5f602082019050919050565b5f6114c582611446565b6114cf8185611450565b93506114da83611460565b805f5b8381101561150a5781516114f18882611498565b97506114fc836114af565b9250506001810190506114dd565b5085935050505092915050565b5f606083015f83015161152c5f8601826112ba565b506020830151848203602086015261154482826113d3565b9150506040830151848203604086015261155e82826114bb565b9150508091505092915050565b5f60608201905061157e5f8301866111fb565b61158b60208301856111fb565b818103604083015261159d8184611517565b9050949350505050565b6115b08161146f565b81146115ba575f5ffd5b50565b5f815190506115cb816115a7565b92915050565b5f602082840312156115e6576115e5610d88565b5b5f6115f3848285016115bd565b91505092915050565b5f602083015f8301518482035f860152611616828261130c565b9150508091505092915050565b5f6020820190508181035f83015261163b81846115fc565b905092915050565b61164c816112a7565b8114611656575f5ffd5b50565b5f8151905061166781611643565b92915050565b5f6020828403121561168257611681610d88565b5b5f61168f84828501611659565b91505092915050565b5f6040820190506116ab5f8301856111fb565b6116b860208301846111fb565b9392505050565b5f67ffffffffffffffff8211156116d9576116d8610fa7565b5b602082029050602081019050919050565b5f5ffd5b5f67ffffffffffffffff82111561170857611707610fa7565b5b61171182610d17565b9050602081019050919050565b5f61173061172b846116ee565b611005565b90508281526020810184848401111561174c5761174b611027565b5b611757848285610d09565b509392505050565b5f82601f83011261177357611772611023565b5b815161178384826020860161171e565b91505092915050565b5f602082840312156117a1576117a0610fa3565b5b6117ab6020611005565b90505f82015167ffffffffffffffff8111156117ca576117c961101f565b5b6117d68482850161175f565b5f8301525092915050565b5f604082840312156117f6576117f5610fa3565b5b6118006040611005565b90505f82015167ffffffffffffffff81111561181f5761181e61101f565b5b61182b8482850161178c565b5f83015250602061183e848285016110f3565b60208301525092915050565b5f61185c611857846116bf565b611005565b9050808382526020820190506020840283018581111561187f5761187e6116ea565b5b835b818110156118c657805167ffffffffffffffff8111156118a4576118a3611023565b5b8086016118b189826117e1565b85526020850194505050602081019050611881565b5050509392505050565b5f82601f8301126118e4576118e3611023565b5b81516118f484826020860161184a565b91505092915050565b5f67ffffffffffffffff82111561191757611916610fa7565b5b602082029050602081019050919050565b6119318161146f565b811461193b575f5ffd5b50565b5f8151905061194c81611928565b92915050565b5f61196461195f846118fd565b611005565b90508083825260208201905060208402830185811115611987576119866116ea565b5b835b818110156119b0578061199c888261193e565b845260208401935050602081019050611989565b5050509392505050565b5f82601f8301126119ce576119cd611023565b5b81516119de848260208601611952565b91505092915050565b5f606082840312156119fc576119fb610fa3565b5b611a066060611005565b90505f611a1584828501611659565b5f83015250602082015167ffffffffffffffff811115611a3857611a3761101f565b5b611a44848285016118d0565b602083015250604082015167ffffffffffffffff811115611a6857611a6761101f565b5b611a74848285016119ba565b60408301525092915050565b5f60208284031215611a9557611a94610d88565b5b5f82015167ffffffffffffffff811115611ab257611ab1610d8c565b5b611abe848285016119e7565b91505092915050565b5f819050919050565b611ae1611adc82611478565b611ac7565b82525050565b5f611af28284611ad0565b60208201915081905092915050565b5f8160601b9050919050565b5f611b1782611b01565b9050919050565b5f611b2882611b0d565b9050919050565b611b40611b3b82610daf565b611b1e565b82525050565b5f611b518284611b2f565b60148201915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b9782610dea565b9150611ba283610dea565b9250828201905080821115611bba57611bb9611b60565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220dcf1d16263f84e8f1bd998365840fd532c5ebd4c8a19d5fa3ca14d90b8bcd88264736f6c634300081c0033 \ No newline at end of file diff --git a/packages/vm/core/evm/iscmagic/ERC20ExternalNativeTokens.bin-runtime b/packages/vm/core/evm/iscmagic/ERC20ExternalNativeTokens.bin-runtime index 742afc05eb..2fd6553f9b 100644 --- a/packages/vm/core/evm/iscmagic/ERC20ExternalNativeTokens.bin-runtime +++ b/packages/vm/core/evm/iscmagic/ERC20ExternalNativeTokens.bin-runtime @@ -1 +1 @@ -608060405234801561000f575f80fd5b506004361061009c575f3560e01c806370a082311161006457806370a082311461015a5780637a4a967d1461018a57806395d89b41146101a8578063a9059cbb146101c6578063dd62ed3e146101f65761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f80fd5b6100a8610226565b6040516100b59190610f39565b60405180910390f35b6100d860048036038101906100d39190610ff7565b6102b5565b6040516100e5919061104f565b60405180910390f35b6100f66103ac565b6040516101039190611077565b60405180910390f35b61012660048036038101906101219190611090565b6103b5565b604051610133919061104f565b60405180910390f35b610144610611565b60405161015191906110fb565b60405180910390f35b610174600480360381019061016f9190611114565b610626565b6040516101819190611077565b60405180910390f35b610192610756565b60405161019f91906111b8565b60405180910390f35b6101b06107ff565b6040516101bd9190610f39565b60405180910390f35b6101e060048036038101906101db9190610ff7565b61088f565b6040516101ed919061104f565b60405180910390f35b610210600480360381019061020b91906111d8565b610a38565b60405161021d9190611077565b60405180910390f35b60605f805461023490611243565b80601f016020809104026020016040519081016040528092919081815260200182805461026090611243565b80156102ab5780601f10610282576101008083540402835291602001916102ab565b820191905f5260205f20905b81548152906001019060200180831161028e57829003601f168201915b5050505050905090565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634601069233856102f0610756565b866040518563ffffffff1660e01b81526004016103109493929190611282565b5f604051808303815f87803b158015610327575f80fd5b505af1158015610339573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161039a9190611077565b60405180910390a36001905092915050565b5f600454905090565b5f6103be610e5a565b600167ffffffffffffffff8111156103d9576103d86112cc565b5b60405190808252806020026020018201604052801561041257816020015b6103ff610e84565b8152602001906001900390816103f75790505b508160200181905250610423610756565b81602001515f8151811061043a576104396112f9565b5b60200260200101515f01819052508281602001515f815181106104605761045f6112f9565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e2d3c4e8633846040518463ffffffff1660e01b81526004016104c193929190611598565b5f604051808303815f87803b1580156104d8575f80fd5b505af11580156104ea573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105a05773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b815260040161057293929190611598565b5f604051808303815f87803b158015610589575f80fd5b505af115801561059b573d5f803e3d5ffd5b505050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516105fd9190611077565b60405180910390a360019150509392505050565b5f60025f9054906101000a900460ff16905090565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610685573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a991906115fe565b90505f6106b68483610b64565b905073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef43e40d6106f0610756565b836040518363ffffffff1660e01b815260040161070e929190611650565b602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d9190611699565b92505050919050565b61075e610ea3565b60036040518060200160405290815f8201805461077a90611243565b80601f01602080910402602001604051908101604052809291908181526020018280546107a690611243565b80156107f15780601f106107c8576101008083540402835291602001916107f1565b820191905f5260205f20905b8154815290600101906020018083116107d457829003601f168201915b505050505081525050905090565b60606001805461080e90611243565b80601f016020809104026020016040519081016040528092919081815260200182805461083a90611243565b80156108855780601f1061085c57610100808354040283529160200191610885565b820191905f5260205f20905b81548152906001019060200180831161086857829003601f168201915b5050505050905090565b5f610898610e5a565b600167ffffffffffffffff8111156108b3576108b26112cc565b5b6040519080825280602002602001820160405280156108ec57816020015b6108d9610e84565b8152602001906001900390816108d15790505b5081602001819052506108fd610756565b81602001515f81518110610914576109136112f9565b5b60200260200101515f01819052508281602001515f8151811061093a576109396112f9565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b815260040161099b93929190611598565b5f604051808303815f87803b1580156109b2575f80fd5b505af11580156109c4573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a259190611077565b60405180910390a3600191505092915050565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630af4187d85856040518363ffffffff1660e01b8152600401610a899291906116c4565b5f60405180830381865afa158015610aa3573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610acb9190611b31565b90505f610ad6610756565b90505f5b826020015151811015610b5757610b1883602001518281518110610b0157610b006112f9565b5b60200260200101515f01515f0151835f0151610d96565b15610b4a5782602001518181518110610b3457610b336112f9565b5b6020026020010151602001519350505050610b5e565b8080600101915050610ada565b505f925050505b92915050565b610b6c610eb6565b5f82604051602001610b7e9190611b98565b60405160208183030381529060405290505f84604051602001610ba19190611bf7565b6040516020818303038152906040529050610bba610eb6565b825182516001610bca9190611c3e565b610bd49190611c3e565b67ffffffffffffffff811115610bed57610bec6112cc565b5b6040519080825280601f01601f191660200182016040528015610c1f5781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610c4257610c416112f9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5b8351811015610cf657838181518110610c8e57610c8d6112f9565b5b602001015160f81c60f81b825f0151600183610caa9190611c3e565b81518110610cbb57610cba6112f9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610c72565b505f5b8251811015610d8957828181518110610d1557610d146112f9565b5b602001015160f81c60f81b825f01518551600184610d339190611c3e565b610d3d9190611c3e565b81518110610d4e57610d4d6112f9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610cf9565b5080935050505092915050565b5f8151835114610da8575f9050610e54565b5f5b8351811015610e4e57828181518110610dc657610dc56112f9565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110610e0657610e056112f9565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610e41575f915050610e54565b8080600101915050610daa565b50600190505b92915050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060400160405280610e97610ea3565b81526020015f81525090565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f0b82610ec9565b610f158185610ed3565b9350610f25818560208601610ee3565b610f2e81610ef1565b840191505092915050565b5f6020820190508181035f830152610f518184610f01565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f9382610f6a565b9050919050565b610fa381610f89565b8114610fad575f80fd5b50565b5f81359050610fbe81610f9a565b92915050565b5f819050919050565b610fd681610fc4565b8114610fe0575f80fd5b50565b5f81359050610ff181610fcd565b92915050565b5f806040838503121561100d5761100c610f62565b5b5f61101a85828601610fb0565b925050602061102b85828601610fe3565b9150509250929050565b5f8115159050919050565b61104981611035565b82525050565b5f6020820190506110625f830184611040565b92915050565b61107181610fc4565b82525050565b5f60208201905061108a5f830184611068565b92915050565b5f805f606084860312156110a7576110a6610f62565b5b5f6110b486828701610fb0565b93505060206110c586828701610fb0565b92505060406110d686828701610fe3565b9150509250925092565b5f60ff82169050919050565b6110f5816110e0565b82525050565b5f60208201905061110e5f8301846110ec565b92915050565b5f6020828403121561112957611128610f62565b5b5f61113684828501610fb0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6111638261113f565b61116d8185611149565b935061117d818560208601610ee3565b61118681610ef1565b840191505092915050565b5f602083015f8301518482035f8601526111ab8282611159565b9150508091505092915050565b5f6020820190508181035f8301526111d08184611191565b905092915050565b5f80604083850312156111ee576111ed610f62565b5b5f6111fb85828601610fb0565b925050602061120c85828601610fb0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061125a57607f821691505b60208210810361126d5761126c611216565b5b50919050565b61127c81610f89565b82525050565b5f6080820190506112955f830187611273565b6112a26020830186611273565b81810360408301526112b48185611191565b90506112c36060830184611068565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b61134281611326565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f602083015f8301518482035f86015261138b8282611159565b9150508091505092915050565b6113a181610fc4565b82525050565b5f604083015f8301518482035f8601526113c18282611371565b91505060208301516113d66020860182611398565b508091505092915050565b5f6113ec83836113a7565b905092915050565b5f602082019050919050565b5f61140a82611348565b6114148185611352565b93508360208202850161142685611362565b805f5b85811015611461578484038952815161144285826113e1565b945061144d836113f4565b925060208a01995050600181019050611429565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f6114af8261149c565b9050919050565b6114bf816114a5565b82525050565b5f6114d083836114b6565b60208301905092915050565b5f602082019050919050565b5f6114f282611473565b6114fc818561147d565b93506115078361148d565b805f5b8381101561153757815161151e88826114c5565b9750611529836114dc565b92505060018101905061150a565b5085935050505092915050565b5f606083015f8301516115595f860182611339565b50602083015184820360208601526115718282611400565b9150506040830151848203604086015261158b82826114e8565b9150508091505092915050565b5f6060820190506115ab5f830186611273565b6115b86020830185611273565b81810360408301526115ca8184611544565b9050949350505050565b6115dd8161149c565b81146115e7575f80fd5b50565b5f815190506115f8816115d4565b92915050565b5f6020828403121561161357611612610f62565b5b5f611620848285016115ea565b91505092915050565b5f602083015f8301518482035f8601526116438282611159565b9150508091505092915050565b5f6040820190508181035f8301526116688185611191565b9050818103602083015261167c8184611629565b90509392505050565b5f8151905061169381610fcd565b92915050565b5f602082840312156116ae576116ad610f62565b5b5f6116bb84828501611685565b91505092915050565b5f6040820190506116d75f830185611273565b6116e46020830184611273565b9392505050565b5f80fd5b6116f882610ef1565b810181811067ffffffffffffffff82111715611717576117166112cc565b5b80604052505050565b5f611729610f59565b905061173582826116ef565b919050565b5f80fd5b61174781611326565b8114611751575f80fd5b50565b5f815190506117628161173e565b92915050565b5f80fd5b5f67ffffffffffffffff821115611786576117856112cc565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156117b9576117b86112cc565b5b6117c282610ef1565b9050602081019050919050565b5f6117e16117dc8461179f565b611720565b9050828152602081018484840111156117fd576117fc61179b565b5b611808848285610ee3565b509392505050565b5f82601f83011261182457611823611768565b5b81516118348482602086016117cf565b91505092915050565b5f60208284031215611852576118516116eb565b5b61185c6020611720565b90505f82015167ffffffffffffffff81111561187b5761187a61173a565b5b61188784828501611810565b5f8301525092915050565b5f604082840312156118a7576118a66116eb565b5b6118b16040611720565b90505f82015167ffffffffffffffff8111156118d0576118cf61173a565b5b6118dc8482850161183d565b5f8301525060206118ef84828501611685565b60208301525092915050565b5f61190d6119088461176c565b611720565b905080838252602082019050602084028301858111156119305761192f611797565b5b835b8181101561197757805167ffffffffffffffff81111561195557611954611768565b5b8086016119628982611892565b85526020850194505050602081019050611932565b5050509392505050565b5f82601f83011261199557611994611768565b5b81516119a58482602086016118fb565b91505092915050565b5f67ffffffffffffffff8211156119c8576119c76112cc565b5b602082029050602081019050919050565b6119e28161149c565b81146119ec575f80fd5b50565b5f815190506119fd816119d9565b92915050565b5f611a15611a10846119ae565b611720565b90508083825260208201905060208402830185811115611a3857611a37611797565b5b835b81811015611a615780611a4d88826119ef565b845260208401935050602081019050611a3a565b5050509392505050565b5f82601f830112611a7f57611a7e611768565b5b8151611a8f848260208601611a03565b91505092915050565b5f60608284031215611aad57611aac6116eb565b5b611ab76060611720565b90505f611ac684828501611754565b5f83015250602082015167ffffffffffffffff811115611ae957611ae861173a565b5b611af584828501611981565b602083015250604082015167ffffffffffffffff811115611b1957611b1861173a565b5b611b2584828501611a6b565b60408301525092915050565b5f60208284031215611b4657611b45610f62565b5b5f82015167ffffffffffffffff811115611b6357611b62610f66565b5b611b6f84828501611a98565b91505092915050565b5f819050919050565b611b92611b8d826114a5565b611b78565b82525050565b5f611ba38284611b81565b60208201915081905092915050565b5f8160601b9050919050565b5f611bc882611bb2565b9050919050565b5f611bd982611bbe565b9050919050565b611bf1611bec82610f89565b611bcf565b82525050565b5f611c028284611be0565b60148201915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c4882610fc4565b9150611c5383610fc4565b9250828201905080821115611c6b57611c6a611c11565b5b9291505056fea264697066735822122036c006c5d91e18d1773aba12977afdf958c414d5b61f3b2250c5972245031dc364736f6c634300081a0033 \ No newline at end of file +608060405234801561000f575f5ffd5b506004361061009c575f3560e01c806370a082311161006457806370a082311461015a5780637a4a967d1461018a57806395d89b41146101a8578063a9059cbb146101c6578063dd62ed3e146101f65761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f5ffd5b6100a8610226565b6040516100b59190610f45565b60405180910390f35b6100d860048036038101906100d39190611003565b6102b5565b6040516100e5919061105b565b60405180910390f35b6100f66103ac565b6040516101039190611083565b60405180910390f35b6101266004803603810190610121919061109c565b6103b5565b604051610133919061105b565b60405180910390f35b610144610611565b6040516101519190611107565b60405180910390f35b610174600480360381019061016f9190611120565b610626565b6040516101819190611083565b60405180910390f35b610192610756565b60405161019f91906111c4565b60405180910390f35b6101b06107ff565b6040516101bd9190610f45565b60405180910390f35b6101e060048036038101906101db9190611003565b61088f565b6040516101ed919061105b565b60405180910390f35b610210600480360381019061020b91906111e4565b610a38565b60405161021d9190611083565b60405180910390f35b60605f80546102349061124f565b80601f01602080910402602001604051908101604052809291908181526020018280546102609061124f565b80156102ab5780601f10610282576101008083540402835291602001916102ab565b820191905f5260205f20905b81548152906001019060200180831161028e57829003601f168201915b5050505050905090565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634601069233856102f0610756565b866040518563ffffffff1660e01b8152600401610310949392919061128e565b5f604051808303815f87803b158015610327575f5ffd5b505af1158015610339573d5f5f3e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161039a9190611083565b60405180910390a36001905092915050565b5f600454905090565b5f6103be610e66565b600167ffffffffffffffff8111156103d9576103d86112d8565b5b60405190808252806020026020018201604052801561041257816020015b6103ff610e90565b8152602001906001900390816103f75790505b508160200181905250610423610756565b81602001515f8151811061043a57610439611305565b5b60200260200101515f01819052508281602001515f815181106104605761045f611305565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e2d3c4e8633846040518463ffffffff1660e01b81526004016104c1939291906115a4565b5f604051808303815f87803b1580156104d8575f5ffd5b505af11580156104ea573d5f5f3e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105a05773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b8152600401610572939291906115a4565b5f604051808303815f87803b158015610589575f5ffd5b505af115801561059b573d5f5f3e3d5ffd5b505050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516105fd9190611083565b60405180910390a360019150509392505050565b5f60025f9054906101000a900460ff16905090565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610685573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a9919061160a565b90505f6106b68483610b67565b905073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef43e40d6106f0610756565b836040518363ffffffff1660e01b815260040161070e92919061165c565b602060405180830381865afa158015610729573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d91906116a5565b92505050919050565b61075e610eaf565b60036040518060200160405290815f8201805461077a9061124f565b80601f01602080910402602001604051908101604052809291908181526020018280546107a69061124f565b80156107f15780601f106107c8576101008083540402835291602001916107f1565b820191905f5260205f20905b8154815290600101906020018083116107d457829003601f168201915b505050505081525050905090565b60606001805461080e9061124f565b80601f016020809104026020016040519081016040528092919081815260200182805461083a9061124f565b80156108855780601f1061085c57610100808354040283529160200191610885565b820191905f5260205f20905b81548152906001019060200180831161086857829003601f168201915b5050505050905090565b5f610898610e66565b600167ffffffffffffffff8111156108b3576108b26112d8565b5b6040519080825280602002602001820160405280156108ec57816020015b6108d9610e90565b8152602001906001900390816108d15790505b5081602001819052506108fd610756565b81602001515f8151811061091457610913611305565b5b60200260200101515f01819052508281602001515f8151811061093a57610939611305565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b815260040161099b939291906115a4565b5f604051808303815f87803b1580156109b2575f5ffd5b505af11580156109c4573d5f5f3e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a259190611083565b60405180910390a3600191505092915050565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630af4187d85856040518363ffffffff1660e01b8152600401610a899291906116d0565b5f60405180830381865afa158015610aa3573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610acb9190611b3d565b90505f610ad6610756565b90505f5f90505b826020015151811015610b5a57610b1b83602001518281518110610b0457610b03611305565b5b60200260200101515f01515f0151835f0151610d9f565b15610b4d5782602001518181518110610b3757610b36611305565b5b6020026020010151602001519350505050610b61565b8080600101915050610add565b505f925050505b92915050565b610b6f610ec2565b5f82604051602001610b819190611ba4565b60405160208183030381529060405290505f84604051602001610ba49190611c03565b6040516020818303038152906040529050610bbd610ec2565b825182516001610bcd9190611c4a565b610bd79190611c4a565b67ffffffffffffffff811115610bf057610bef6112d8565b5b6040519080825280601f01601f191660200182016040528015610c225781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610c4557610c44611305565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5f90505b8351811015610cfc57838181518110610c9457610c93611305565b5b602001015160f81c60f81b825f0151600183610cb09190611c4a565b81518110610cc157610cc0611305565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610c78565b505f5f90505b8251811015610d9257828181518110610d1e57610d1d611305565b5b602001015160f81c60f81b825f01518551600184610d3c9190611c4a565b610d469190611c4a565b81518110610d5757610d56611305565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610d02565b5080935050505092915050565b5f8151835114610db1575f9050610e60565b5f5f90505b8351811015610e5a57828181518110610dd257610dd1611305565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110610e1257610e11611305565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610e4d575f915050610e60565b8080600101915050610db6565b50600190505b92915050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060400160405280610ea3610eaf565b81526020015f81525090565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f1782610ed5565b610f218185610edf565b9350610f31818560208601610eef565b610f3a81610efd565b840191505092915050565b5f6020820190508181035f830152610f5d8184610f0d565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f9f82610f76565b9050919050565b610faf81610f95565b8114610fb9575f5ffd5b50565b5f81359050610fca81610fa6565b92915050565b5f819050919050565b610fe281610fd0565b8114610fec575f5ffd5b50565b5f81359050610ffd81610fd9565b92915050565b5f5f6040838503121561101957611018610f6e565b5b5f61102685828601610fbc565b925050602061103785828601610fef565b9150509250929050565b5f8115159050919050565b61105581611041565b82525050565b5f60208201905061106e5f83018461104c565b92915050565b61107d81610fd0565b82525050565b5f6020820190506110965f830184611074565b92915050565b5f5f5f606084860312156110b3576110b2610f6e565b5b5f6110c086828701610fbc565b93505060206110d186828701610fbc565b92505060406110e286828701610fef565b9150509250925092565b5f60ff82169050919050565b611101816110ec565b82525050565b5f60208201905061111a5f8301846110f8565b92915050565b5f6020828403121561113557611134610f6e565b5b5f61114284828501610fbc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61116f8261114b565b6111798185611155565b9350611189818560208601610eef565b61119281610efd565b840191505092915050565b5f602083015f8301518482035f8601526111b78282611165565b9150508091505092915050565b5f6020820190508181035f8301526111dc818461119d565b905092915050565b5f5f604083850312156111fa576111f9610f6e565b5b5f61120785828601610fbc565b925050602061121885828601610fbc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061126657607f821691505b60208210810361127957611278611222565b5b50919050565b61128881610f95565b82525050565b5f6080820190506112a15f83018761127f565b6112ae602083018661127f565b81810360408301526112c0818561119d565b90506112cf6060830184611074565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b61134e81611332565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f602083015f8301518482035f8601526113978282611165565b9150508091505092915050565b6113ad81610fd0565b82525050565b5f604083015f8301518482035f8601526113cd828261137d565b91505060208301516113e260208601826113a4565b508091505092915050565b5f6113f883836113b3565b905092915050565b5f602082019050919050565b5f61141682611354565b611420818561135e565b9350836020820285016114328561136e565b805f5b8581101561146d578484038952815161144e85826113ed565b945061145983611400565b925060208a01995050600181019050611435565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f6114bb826114a8565b9050919050565b6114cb816114b1565b82525050565b5f6114dc83836114c2565b60208301905092915050565b5f602082019050919050565b5f6114fe8261147f565b6115088185611489565b935061151383611499565b805f5b8381101561154357815161152a88826114d1565b9750611535836114e8565b925050600181019050611516565b5085935050505092915050565b5f606083015f8301516115655f860182611345565b506020830151848203602086015261157d828261140c565b9150506040830151848203604086015261159782826114f4565b9150508091505092915050565b5f6060820190506115b75f83018661127f565b6115c4602083018561127f565b81810360408301526115d68184611550565b9050949350505050565b6115e9816114a8565b81146115f3575f5ffd5b50565b5f81519050611604816115e0565b92915050565b5f6020828403121561161f5761161e610f6e565b5b5f61162c848285016115f6565b91505092915050565b5f602083015f8301518482035f86015261164f8282611165565b9150508091505092915050565b5f6040820190508181035f830152611674818561119d565b905081810360208301526116888184611635565b90509392505050565b5f8151905061169f81610fd9565b92915050565b5f602082840312156116ba576116b9610f6e565b5b5f6116c784828501611691565b91505092915050565b5f6040820190506116e35f83018561127f565b6116f0602083018461127f565b9392505050565b5f5ffd5b61170482610efd565b810181811067ffffffffffffffff82111715611723576117226112d8565b5b80604052505050565b5f611735610f65565b905061174182826116fb565b919050565b5f5ffd5b61175381611332565b811461175d575f5ffd5b50565b5f8151905061176e8161174a565b92915050565b5f5ffd5b5f67ffffffffffffffff821115611792576117916112d8565b5b602082029050602081019050919050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff8211156117c5576117c46112d8565b5b6117ce82610efd565b9050602081019050919050565b5f6117ed6117e8846117ab565b61172c565b905082815260208101848484011115611809576118086117a7565b5b611814848285610eef565b509392505050565b5f82601f8301126118305761182f611774565b5b81516118408482602086016117db565b91505092915050565b5f6020828403121561185e5761185d6116f7565b5b611868602061172c565b90505f82015167ffffffffffffffff81111561188757611886611746565b5b6118938482850161181c565b5f8301525092915050565b5f604082840312156118b3576118b26116f7565b5b6118bd604061172c565b90505f82015167ffffffffffffffff8111156118dc576118db611746565b5b6118e884828501611849565b5f8301525060206118fb84828501611691565b60208301525092915050565b5f61191961191484611778565b61172c565b9050808382526020820190506020840283018581111561193c5761193b6117a3565b5b835b8181101561198357805167ffffffffffffffff81111561196157611960611774565b5b80860161196e898261189e565b8552602085019450505060208101905061193e565b5050509392505050565b5f82601f8301126119a1576119a0611774565b5b81516119b1848260208601611907565b91505092915050565b5f67ffffffffffffffff8211156119d4576119d36112d8565b5b602082029050602081019050919050565b6119ee816114a8565b81146119f8575f5ffd5b50565b5f81519050611a09816119e5565b92915050565b5f611a21611a1c846119ba565b61172c565b90508083825260208201905060208402830185811115611a4457611a436117a3565b5b835b81811015611a6d5780611a5988826119fb565b845260208401935050602081019050611a46565b5050509392505050565b5f82601f830112611a8b57611a8a611774565b5b8151611a9b848260208601611a0f565b91505092915050565b5f60608284031215611ab957611ab86116f7565b5b611ac3606061172c565b90505f611ad284828501611760565b5f83015250602082015167ffffffffffffffff811115611af557611af4611746565b5b611b018482850161198d565b602083015250604082015167ffffffffffffffff811115611b2557611b24611746565b5b611b3184828501611a77565b60408301525092915050565b5f60208284031215611b5257611b51610f6e565b5b5f82015167ffffffffffffffff811115611b6f57611b6e610f72565b5b611b7b84828501611aa4565b91505092915050565b5f819050919050565b611b9e611b99826114b1565b611b84565b82525050565b5f611baf8284611b8d565b60208201915081905092915050565b5f8160601b9050919050565b5f611bd482611bbe565b9050919050565b5f611be582611bca565b9050919050565b611bfd611bf882610f95565b611bdb565b82525050565b5f611c0e8284611bec565b60148201915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c5482610fd0565b9150611c5f83610fd0565b9250828201905080821115611c7757611c76611c1d565b5b9291505056fea2646970667358221220d975f9595bb400f4a04c1a2c28613c6d056b789658c6a58623c513cbf654e29c64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/vm/core/evm/iscmagic/ERC20NativeTokens.bin-runtime b/packages/vm/core/evm/iscmagic/ERC20NativeTokens.bin-runtime index ac5b7710df..6e6bb92cdc 100644 --- a/packages/vm/core/evm/iscmagic/ERC20NativeTokens.bin-runtime +++ b/packages/vm/core/evm/iscmagic/ERC20NativeTokens.bin-runtime @@ -1 +1 @@ -608060405234801561000f575f80fd5b506004361061009c575f3560e01c806370a082311161006457806370a082311461015a5780637a4a967d1461018a57806395d89b41146101a8578063a9059cbb146101c6578063dd62ed3e146101f65761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f80fd5b6100a8610226565b6040516100b59190611059565b60405180910390f35b6100d860048036038101906100d39190611117565b6102b5565b6040516100e5919061116f565b60405180910390f35b6100f66103ac565b6040516101039190611197565b60405180910390f35b610126600480360381019061012191906111b0565b610449565b604051610133919061116f565b60405180910390f35b6101446106a5565b604051610151919061121b565b60405180910390f35b610174600480360381019061016f9190611234565b6106ba565b6040516101819190611197565b60405180910390f35b6101926107ea565b60405161019f91906112d8565b60405180910390f35b6101b061088d565b6040516101bd9190611059565b60405180910390f35b6101e060048036038101906101db9190611117565b61091d565b6040516101ed919061116f565b60405180910390f35b610210600480360381019061020b91906112f8565b610ac6565b60405161021d9190611197565b60405180910390f35b60605f805461023490611363565b80601f016020809104026020016040519081016040528092919081815260200182805461026090611363565b80156102ab5780601f10610282576101008083540402835291602001916102ab565b820191905f5260205f20905b81548152906001019060200180831161028e57829003601f168201915b5050505050905090565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634601069233856102f06107ea565b866040518563ffffffff1660e01b815260040161031094939291906113a2565b5f604051808303815f87803b158015610327575f80fd5b505af1158015610339573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161039a9190611197565b60405180910390a36001905092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e64ea416103e5610bf2565b6040518263ffffffff1660e01b8152600401610401919061140a565b606060405180830381865afa15801561041c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104409190611518565b60400151905090565b5f610452610f7a565b600167ffffffffffffffff81111561046d5761046c611427565b5b6040519080825280602002602001820160405280156104a657816020015b610493610fa4565b81526020019060019003908161048b5790505b5081602001819052506104b76107ea565b81602001515f815181106104ce576104cd611543565b5b60200260200101515f01819052508281602001515f815181106104f4576104f3611543565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e2d3c4e8633846040518463ffffffff1660e01b8152600401610555939291906117e2565b5f604051808303815f87803b15801561056c575f80fd5b505af115801561057e573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146106345773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b8152600401610606939291906117e2565b5f604051808303815f87803b15801561061d575f80fd5b505af115801561062f573d5f803e3d5ffd5b505050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106919190611197565b60405180910390a360019150509392505050565b5f60025f9054906101000a900460ff16905090565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610719573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073d9190611848565b90505f61074a8483610c84565b905073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef43e40d6107846107ea565b836040518363ffffffff1660e01b81526004016107a292919061189a565b602060405180830381865afa1580156107bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e191906118cf565b92505050919050565b6107f2610fc3565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663360a917061082a610bf2565b6040518263ffffffff1660e01b8152600401610846919061140a565b5f60405180830381865afa158015610860573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061088891906119f5565b905090565b60606001805461089c90611363565b80601f01602080910402602001604051908101604052809291908181526020018280546108c890611363565b80156109135780601f106108ea57610100808354040283529160200191610913565b820191905f5260205f20905b8154815290600101906020018083116108f657829003601f168201915b5050505050905090565b5f610926610f7a565b600167ffffffffffffffff81111561094157610940611427565b5b60405190808252806020026020018201604052801561097a57816020015b610967610fa4565b81526020019060019003908161095f5790505b50816020018190525061098b6107ea565b81602001515f815181106109a2576109a1611543565b5b60200260200101515f01819052508281602001515f815181106109c8576109c7611543565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b8152600401610a29939291906117e2565b5f604051808303815f87803b158015610a40575f80fd5b505af1158015610a52573d5f803e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ab39190611197565b60405180910390a3600191505092915050565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630af4187d85856040518363ffffffff1660e01b8152600401610b17929190611a3c565b5f60405180830381865afa158015610b31573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610b599190611d5b565b90505f610b646107ea565b90505f5b826020015151811015610be557610ba683602001518281518110610b8f57610b8e611543565b5b60200260200101515f01515f0151835f0151610eb6565b15610bd85782602001518181518110610bc257610bc1611543565b5b6020026020010151602001519350505050610bec565b8080600101915050610b68565b505f925050505b92915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166308ad1993306040518263ffffffff1660e01b8152600401610c409190611da2565b602060405180830381865afa158015610c5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7f9190611de5565b905090565b610c8c610fd6565b5f82604051602001610c9e9190611e30565b60405160208183030381529060405290505f84604051602001610cc19190611e8f565b6040516020818303038152906040529050610cda610fd6565b825182516001610cea9190611ed6565b610cf49190611ed6565b67ffffffffffffffff811115610d0d57610d0c611427565b5b6040519080825280601f01601f191660200182016040528015610d3f5781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610d6257610d61611543565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5b8351811015610e1657838181518110610dae57610dad611543565b5b602001015160f81c60f81b825f0151600183610dca9190611ed6565b81518110610ddb57610dda611543565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610d92565b505f5b8251811015610ea957828181518110610e3557610e34611543565b5b602001015160f81c60f81b825f01518551600184610e539190611ed6565b610e5d9190611ed6565b81518110610e6e57610e6d611543565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610e19565b5080935050505092915050565b5f8151835114610ec8575f9050610f74565b5f5b8351811015610f6e57828181518110610ee657610ee5611543565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110610f2657610f25611543565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f61575f915050610f74565b8080600101915050610eca565b50600190505b92915050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060400160405280610fb7610fc3565b81526020015f81525090565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61102b82610fe9565b6110358185610ff3565b9350611045818560208601611003565b61104e81611011565b840191505092915050565b5f6020820190508181035f8301526110718184611021565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110b38261108a565b9050919050565b6110c3816110a9565b81146110cd575f80fd5b50565b5f813590506110de816110ba565b92915050565b5f819050919050565b6110f6816110e4565b8114611100575f80fd5b50565b5f81359050611111816110ed565b92915050565b5f806040838503121561112d5761112c611082565b5b5f61113a858286016110d0565b925050602061114b85828601611103565b9150509250929050565b5f8115159050919050565b61116981611155565b82525050565b5f6020820190506111825f830184611160565b92915050565b611191816110e4565b82525050565b5f6020820190506111aa5f830184611188565b92915050565b5f805f606084860312156111c7576111c6611082565b5b5f6111d4868287016110d0565b93505060206111e5868287016110d0565b92505060406111f686828701611103565b9150509250925092565b5f60ff82169050919050565b61121581611200565b82525050565b5f60208201905061122e5f83018461120c565b92915050565b5f6020828403121561124957611248611082565b5b5f611256848285016110d0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6112838261125f565b61128d8185611269565b935061129d818560208601611003565b6112a681611011565b840191505092915050565b5f602083015f8301518482035f8601526112cb8282611279565b9150508091505092915050565b5f6020820190508181035f8301526112f081846112b1565b905092915050565b5f806040838503121561130e5761130d611082565b5b5f61131b858286016110d0565b925050602061132c858286016110d0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061137a57607f821691505b60208210810361138d5761138c611336565b5b50919050565b61139c816110a9565b82525050565b5f6080820190506113b55f830187611393565b6113c26020830186611393565b81810360408301526113d481856112b1565b90506113e36060830184611188565b95945050505050565b5f63ffffffff82169050919050565b611404816113ec565b82525050565b5f60208201905061141d5f8301846113fb565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61145d82611011565b810181811067ffffffffffffffff8211171561147c5761147b611427565b5b80604052505050565b5f61148e611079565b905061149a8282611454565b919050565b5f80fd5b5f815190506114b1816110ed565b92915050565b5f606082840312156114cc576114cb611423565b5b6114d66060611485565b90505f6114e5848285016114a3565b5f8301525060206114f8848285016114a3565b602083015250604061150c848285016114a3565b60408301525092915050565b5f6060828403121561152d5761152c611082565b5b5f61153a848285016114b7565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b61158c81611570565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f602083015f8301518482035f8601526115d58282611279565b9150508091505092915050565b6115eb816110e4565b82525050565b5f604083015f8301518482035f86015261160b82826115bb565b915050602083015161162060208601826115e2565b508091505092915050565b5f61163683836115f1565b905092915050565b5f602082019050919050565b5f61165482611592565b61165e818561159c565b935083602082028501611670856115ac565b805f5b858110156116ab578484038952815161168c858261162b565b94506116978361163e565b925060208a01995050600181019050611673565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f6116f9826116e6565b9050919050565b611709816116ef565b82525050565b5f61171a8383611700565b60208301905092915050565b5f602082019050919050565b5f61173c826116bd565b61174681856116c7565b9350611751836116d7565b805f5b83811015611781578151611768888261170f565b975061177383611726565b925050600181019050611754565b5085935050505092915050565b5f606083015f8301516117a35f860182611583565b50602083015184820360208601526117bb828261164a565b915050604083015184820360408601526117d58282611732565b9150508091505092915050565b5f6060820190506117f55f830186611393565b6118026020830185611393565b8181036040830152611814818461178e565b9050949350505050565b611827816116e6565b8114611831575f80fd5b50565b5f815190506118428161181e565b92915050565b5f6020828403121561185d5761185c611082565b5b5f61186a84828501611834565b91505092915050565b5f602083015f8301518482035f86015261188d8282611279565b9150508091505092915050565b5f6040820190508181035f8301526118b281856112b1565b905081810360208301526118c68184611873565b90509392505050565b5f602082840312156118e4576118e3611082565b5b5f6118f1848285016114a3565b91505092915050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561191c5761191b611427565b5b61192582611011565b9050602081019050919050565b5f61194461193f84611902565b611485565b9050828152602081018484840111156119605761195f6118fe565b5b61196b848285611003565b509392505050565b5f82601f830112611987576119866118fa565b5b8151611997848260208601611932565b91505092915050565b5f602082840312156119b5576119b4611423565b5b6119bf6020611485565b90505f82015167ffffffffffffffff8111156119de576119dd61149f565b5b6119ea84828501611973565b5f8301525092915050565b5f60208284031215611a0a57611a09611082565b5b5f82015167ffffffffffffffff811115611a2757611a26611086565b5b611a33848285016119a0565b91505092915050565b5f604082019050611a4f5f830185611393565b611a5c6020830184611393565b9392505050565b611a6c81611570565b8114611a76575f80fd5b50565b5f81519050611a8781611a63565b92915050565b5f67ffffffffffffffff821115611aa757611aa6611427565b5b602082029050602081019050919050565b5f80fd5b5f60408284031215611ad157611ad0611423565b5b611adb6040611485565b90505f82015167ffffffffffffffff811115611afa57611af961149f565b5b611b06848285016119a0565b5f830152506020611b19848285016114a3565b60208301525092915050565b5f611b37611b3284611a8d565b611485565b90508083825260208201905060208402830185811115611b5a57611b59611ab8565b5b835b81811015611ba157805167ffffffffffffffff811115611b7f57611b7e6118fa565b5b808601611b8c8982611abc565b85526020850194505050602081019050611b5c565b5050509392505050565b5f82601f830112611bbf57611bbe6118fa565b5b8151611bcf848260208601611b25565b91505092915050565b5f67ffffffffffffffff821115611bf257611bf1611427565b5b602082029050602081019050919050565b611c0c816116e6565b8114611c16575f80fd5b50565b5f81519050611c2781611c03565b92915050565b5f611c3f611c3a84611bd8565b611485565b90508083825260208201905060208402830185811115611c6257611c61611ab8565b5b835b81811015611c8b5780611c778882611c19565b845260208401935050602081019050611c64565b5050509392505050565b5f82601f830112611ca957611ca86118fa565b5b8151611cb9848260208601611c2d565b91505092915050565b5f60608284031215611cd757611cd6611423565b5b611ce16060611485565b90505f611cf084828501611a79565b5f83015250602082015167ffffffffffffffff811115611d1357611d1261149f565b5b611d1f84828501611bab565b602083015250604082015167ffffffffffffffff811115611d4357611d4261149f565b5b611d4f84828501611c95565b60408301525092915050565b5f60208284031215611d7057611d6f611082565b5b5f82015167ffffffffffffffff811115611d8d57611d8c611086565b5b611d9984828501611cc2565b91505092915050565b5f602082019050611db55f830184611393565b92915050565b611dc4816113ec565b8114611dce575f80fd5b50565b5f81519050611ddf81611dbb565b92915050565b5f60208284031215611dfa57611df9611082565b5b5f611e0784828501611dd1565b91505092915050565b5f819050919050565b611e2a611e25826116ef565b611e10565b82525050565b5f611e3b8284611e19565b60208201915081905092915050565b5f8160601b9050919050565b5f611e6082611e4a565b9050919050565b5f611e7182611e56565b9050919050565b611e89611e84826110a9565b611e67565b82525050565b5f611e9a8284611e78565b60148201915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ee0826110e4565b9150611eeb836110e4565b9250828201905080821115611f0357611f02611ea9565b5b9291505056fea26469706673582212203c2365ce88328e230a70a7cf0e67aa2fd9b25483858f4fbbeec8bd0b7544f6ba64736f6c634300081a0033 \ No newline at end of file +608060405234801561000f575f5ffd5b506004361061009c575f3560e01c806370a082311161006457806370a082311461015a5780637a4a967d1461018a57806395d89b41146101a8578063a9059cbb146101c6578063dd62ed3e146101f65761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f5ffd5b6100a8610226565b6040516100b59190611065565b60405180910390f35b6100d860048036038101906100d39190611123565b6102b5565b6040516100e5919061117b565b60405180910390f35b6100f66103ac565b60405161010391906111a3565b60405180910390f35b610126600480360381019061012191906111bc565b610449565b604051610133919061117b565b60405180910390f35b6101446106a5565b6040516101519190611227565b60405180910390f35b610174600480360381019061016f9190611240565b6106ba565b60405161018191906111a3565b60405180910390f35b6101926107ea565b60405161019f91906112e4565b60405180910390f35b6101b061088d565b6040516101bd9190611065565b60405180910390f35b6101e060048036038101906101db9190611123565b61091d565b6040516101ed919061117b565b60405180910390f35b610210600480360381019061020b9190611304565b610ac6565b60405161021d91906111a3565b60405180910390f35b60605f80546102349061136f565b80601f01602080910402602001604051908101604052809291908181526020018280546102609061136f565b80156102ab5780601f10610282576101008083540402835291602001916102ab565b820191905f5260205f20905b81548152906001019060200180831161028e57829003601f168201915b5050505050905090565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634601069233856102f06107ea565b866040518563ffffffff1660e01b815260040161031094939291906113ae565b5f604051808303815f87803b158015610327575f5ffd5b505af1158015610339573d5f5f3e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161039a91906111a3565b60405180910390a36001905092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e64ea416103e5610bf5565b6040518263ffffffff1660e01b81526004016104019190611416565b606060405180830381865afa15801561041c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104409190611524565b60400151905090565b5f610452610f86565b600167ffffffffffffffff81111561046d5761046c611433565b5b6040519080825280602002602001820160405280156104a657816020015b610493610fb0565b81526020019060019003908161048b5790505b5081602001819052506104b76107ea565b81602001515f815181106104ce576104cd61154f565b5b60200260200101515f01819052508281602001515f815181106104f4576104f361154f565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e2d3c4e8633846040518463ffffffff1660e01b8152600401610555939291906117ee565b5f604051808303815f87803b15801561056c575f5ffd5b505af115801561057e573d5f5f3e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146106345773107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b8152600401610606939291906117ee565b5f604051808303815f87803b15801561061d575f5ffd5b505af115801561062f573d5f5f3e3d5ffd5b505050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161069191906111a3565b60405180910390a360019150509392505050565b5f60025f9054906101000a900460ff16905090565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610719573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073d9190611854565b90505f61074a8483610c87565b905073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef43e40d6107846107ea565b836040518363ffffffff1660e01b81526004016107a29291906118a6565b602060405180830381865afa1580156107bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e191906118db565b92505050919050565b6107f2610fcf565b73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663360a917061082a610bf5565b6040518263ffffffff1660e01b81526004016108469190611416565b5f60405180830381865afa158015610860573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906108889190611a01565b905090565b60606001805461089c9061136f565b80601f01602080910402602001604051908101604052809291908181526020018280546108c89061136f565b80156109135780601f106108ea57610100808354040283529160200191610913565b820191905f5260205f20905b8154815290600101906020018083116108f657829003601f168201915b5050505050905090565b5f610926610f86565b600167ffffffffffffffff81111561094157610940611433565b5b60405190808252806020026020018201604052801561097a57816020015b610967610fb0565b81526020019060019003908161095f5790505b50816020018190525061098b6107ea565b81602001515f815181106109a2576109a161154f565b5b60200260200101515f01819052508281602001515f815181106109c8576109c761154f565b5b6020026020010151602001818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b3386846040518463ffffffff1660e01b8152600401610a29939291906117ee565b5f604051808303815f87803b158015610a40575f5ffd5b505af1158015610a52573d5f5f3e3d5ffd5b505050508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610ab391906111a3565b60405180910390a3600191505092915050565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630af4187d85856040518363ffffffff1660e01b8152600401610b17929190611a48565b5f60405180830381865afa158015610b31573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610b599190611d67565b90505f610b646107ea565b90505f5f90505b826020015151811015610be857610ba983602001518281518110610b9257610b9161154f565b5b60200260200101515f01515f0151835f0151610ebf565b15610bdb5782602001518181518110610bc557610bc461154f565b5b6020026020010151602001519350505050610bef565b8080600101915050610b6b565b505f925050505b92915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166308ad1993306040518263ffffffff1660e01b8152600401610c439190611dae565b602060405180830381865afa158015610c5e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c829190611df1565b905090565b610c8f610fe2565b5f82604051602001610ca19190611e3c565b60405160208183030381529060405290505f84604051602001610cc49190611e9b565b6040516020818303038152906040529050610cdd610fe2565b825182516001610ced9190611ee2565b610cf79190611ee2565b67ffffffffffffffff811115610d1057610d0f611433565b5b6040519080825280601f01601f191660200182016040528015610d425781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610d6557610d6461154f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5f90505b8351811015610e1c57838181518110610db457610db361154f565b5b602001015160f81c60f81b825f0151600183610dd09190611ee2565b81518110610de157610de061154f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610d98565b505f5f90505b8251811015610eb257828181518110610e3e57610e3d61154f565b5b602001015160f81c60f81b825f01518551600184610e5c9190611ee2565b610e669190611ee2565b81518110610e7757610e7661154f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610e22565b5080935050505092915050565b5f8151835114610ed1575f9050610f80565b5f5f90505b8351811015610f7a57828181518110610ef257610ef161154f565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110610f3257610f3161154f565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f6d575f915050610f80565b8080600101915050610ed6565b50600190505b92915050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060400160405280610fc3610fcf565b81526020015f81525090565b6040518060200160405280606081525090565b6040518060200160405280606081525090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61103782610ff5565b6110418185610fff565b935061105181856020860161100f565b61105a8161101d565b840191505092915050565b5f6020820190508181035f83015261107d818461102d565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110bf82611096565b9050919050565b6110cf816110b5565b81146110d9575f5ffd5b50565b5f813590506110ea816110c6565b92915050565b5f819050919050565b611102816110f0565b811461110c575f5ffd5b50565b5f8135905061111d816110f9565b92915050565b5f5f604083850312156111395761113861108e565b5b5f611146858286016110dc565b92505060206111578582860161110f565b9150509250929050565b5f8115159050919050565b61117581611161565b82525050565b5f60208201905061118e5f83018461116c565b92915050565b61119d816110f0565b82525050565b5f6020820190506111b65f830184611194565b92915050565b5f5f5f606084860312156111d3576111d261108e565b5b5f6111e0868287016110dc565b93505060206111f1868287016110dc565b92505060406112028682870161110f565b9150509250925092565b5f60ff82169050919050565b6112218161120c565b82525050565b5f60208201905061123a5f830184611218565b92915050565b5f602082840312156112555761125461108e565b5b5f611262848285016110dc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61128f8261126b565b6112998185611275565b93506112a981856020860161100f565b6112b28161101d565b840191505092915050565b5f602083015f8301518482035f8601526112d78282611285565b9150508091505092915050565b5f6020820190508181035f8301526112fc81846112bd565b905092915050565b5f5f6040838503121561131a5761131961108e565b5b5f611327858286016110dc565b9250506020611338858286016110dc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061138657607f821691505b60208210810361139957611398611342565b5b50919050565b6113a8816110b5565b82525050565b5f6080820190506113c15f83018761139f565b6113ce602083018661139f565b81810360408301526113e081856112bd565b90506113ef6060830184611194565b95945050505050565b5f63ffffffff82169050919050565b611410816113f8565b82525050565b5f6020820190506114295f830184611407565b92915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6114698261101d565b810181811067ffffffffffffffff8211171561148857611487611433565b5b80604052505050565b5f61149a611085565b90506114a68282611460565b919050565b5f5ffd5b5f815190506114bd816110f9565b92915050565b5f606082840312156114d8576114d761142f565b5b6114e26060611491565b90505f6114f1848285016114af565b5f830152506020611504848285016114af565b6020830152506040611518848285016114af565b60408301525092915050565b5f606082840312156115395761153861108e565b5b5f611546848285016114c3565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b6115988161157c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f602083015f8301518482035f8601526115e18282611285565b9150508091505092915050565b6115f7816110f0565b82525050565b5f604083015f8301518482035f86015261161782826115c7565b915050602083015161162c60208601826115ee565b508091505092915050565b5f61164283836115fd565b905092915050565b5f602082019050919050565b5f6116608261159e565b61166a81856115a8565b93508360208202850161167c856115b8565b805f5b858110156116b757848403895281516116988582611637565b94506116a38361164a565b925060208a0199505060018101905061167f565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b5f611705826116f2565b9050919050565b611715816116fb565b82525050565b5f611726838361170c565b60208301905092915050565b5f602082019050919050565b5f611748826116c9565b61175281856116d3565b935061175d836116e3565b805f5b8381101561178d578151611774888261171b565b975061177f83611732565b925050600181019050611760565b5085935050505092915050565b5f606083015f8301516117af5f86018261158f565b50602083015184820360208601526117c78282611656565b915050604083015184820360408601526117e1828261173e565b9150508091505092915050565b5f6060820190506118015f83018661139f565b61180e602083018561139f565b8181036040830152611820818461179a565b9050949350505050565b611833816116f2565b811461183d575f5ffd5b50565b5f8151905061184e8161182a565b92915050565b5f602082840312156118695761186861108e565b5b5f61187684828501611840565b91505092915050565b5f602083015f8301518482035f8601526118998282611285565b9150508091505092915050565b5f6040820190508181035f8301526118be81856112bd565b905081810360208301526118d2818461187f565b90509392505050565b5f602082840312156118f0576118ef61108e565b5b5f6118fd848285016114af565b91505092915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82111561192857611927611433565b5b6119318261101d565b9050602081019050919050565b5f61195061194b8461190e565b611491565b90508281526020810184848401111561196c5761196b61190a565b5b61197784828561100f565b509392505050565b5f82601f83011261199357611992611906565b5b81516119a384826020860161193e565b91505092915050565b5f602082840312156119c1576119c061142f565b5b6119cb6020611491565b90505f82015167ffffffffffffffff8111156119ea576119e96114ab565b5b6119f68482850161197f565b5f8301525092915050565b5f60208284031215611a1657611a1561108e565b5b5f82015167ffffffffffffffff811115611a3357611a32611092565b5b611a3f848285016119ac565b91505092915050565b5f604082019050611a5b5f83018561139f565b611a68602083018461139f565b9392505050565b611a788161157c565b8114611a82575f5ffd5b50565b5f81519050611a9381611a6f565b92915050565b5f67ffffffffffffffff821115611ab357611ab2611433565b5b602082029050602081019050919050565b5f5ffd5b5f60408284031215611add57611adc61142f565b5b611ae76040611491565b90505f82015167ffffffffffffffff811115611b0657611b056114ab565b5b611b12848285016119ac565b5f830152506020611b25848285016114af565b60208301525092915050565b5f611b43611b3e84611a99565b611491565b90508083825260208201905060208402830185811115611b6657611b65611ac4565b5b835b81811015611bad57805167ffffffffffffffff811115611b8b57611b8a611906565b5b808601611b988982611ac8565b85526020850194505050602081019050611b68565b5050509392505050565b5f82601f830112611bcb57611bca611906565b5b8151611bdb848260208601611b31565b91505092915050565b5f67ffffffffffffffff821115611bfe57611bfd611433565b5b602082029050602081019050919050565b611c18816116f2565b8114611c22575f5ffd5b50565b5f81519050611c3381611c0f565b92915050565b5f611c4b611c4684611be4565b611491565b90508083825260208201905060208402830185811115611c6e57611c6d611ac4565b5b835b81811015611c975780611c838882611c25565b845260208401935050602081019050611c70565b5050509392505050565b5f82601f830112611cb557611cb4611906565b5b8151611cc5848260208601611c39565b91505092915050565b5f60608284031215611ce357611ce261142f565b5b611ced6060611491565b90505f611cfc84828501611a85565b5f83015250602082015167ffffffffffffffff811115611d1f57611d1e6114ab565b5b611d2b84828501611bb7565b602083015250604082015167ffffffffffffffff811115611d4f57611d4e6114ab565b5b611d5b84828501611ca1565b60408301525092915050565b5f60208284031215611d7c57611d7b61108e565b5b5f82015167ffffffffffffffff811115611d9957611d98611092565b5b611da584828501611cce565b91505092915050565b5f602082019050611dc15f83018461139f565b92915050565b611dd0816113f8565b8114611dda575f5ffd5b50565b5f81519050611deb81611dc7565b92915050565b5f60208284031215611e0657611e0561108e565b5b5f611e1384828501611ddd565b91505092915050565b5f819050919050565b611e36611e31826116fb565b611e1c565b82525050565b5f611e478284611e25565b60208201915081905092915050565b5f8160601b9050919050565b5f611e6c82611e56565b9050919050565b5f611e7d82611e62565b9050919050565b611e95611e90826110b5565b611e73565b82525050565b5f611ea68284611e84565b60148201915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611eec826110f0565b9150611ef7836110f0565b9250828201905080821115611f0f57611f0e611eb5565b5b9291505056fea2646970667358221220c0987b054524839a6d6507616a095e0dbc06a415abe40b7f24b1d00c940bb52b64736f6c634300081c0033 \ No newline at end of file diff --git a/packages/vm/core/evm/iscmagic/ERC721NFTCollection.bin-runtime b/packages/vm/core/evm/iscmagic/ERC721NFTCollection.bin-runtime index ec932808bf..61d597619e 100644 --- a/packages/vm/core/evm/iscmagic/ERC721NFTCollection.bin-runtime +++ b/packages/vm/core/evm/iscmagic/ERC721NFTCollection.bin-runtime @@ -1 +1 @@ -6080604052600436106100dc575f3560e01c80636352211e1161007e578063a22cb46511610058578063a22cb465146102a2578063b88d4fde146102ca578063c87b56dd146102e6578063e985e9c514610322576100dc565b80636352211e1461020057806370a082311461023c57806395d89b4114610278576100dc565b8063095ea7b3116100ba578063095ea7b31461018257806323b872dd1461019e5780633d26bb67146101ba57806342842e0e146101e4576100dc565b806301ffc9a7146100e057806306fdde031461011c578063081812fc14610146575b5f80fd5b3480156100eb575f80fd5b506101066004803603810190610101919061155a565b61035e565b604051610113919061159f565b60405180910390f35b348015610127575f80fd5b5061013061044c565b60405161013d9190611628565b60405180910390f35b348015610151575f80fd5b5061016c6004803603810190610167919061167b565b6104dc565b60405161017991906116e5565b60405180910390f35b61019c60048036038101906101979190611728565b61051d565b005b6101b860048036038101906101b39190611766565b610656565b005b3480156101c5575f80fd5b506101ce610678565b6040516101db91906117df565b60405180910390f35b6101fe60048036038101906101f99190611766565b610681565b005b34801561020b575f80fd5b506102266004803603810190610221919061167b565b6106a0565b60405161023391906116e5565b60405180910390f35b348015610247575f80fd5b50610262600480360381019061025d91906117f8565b6107ad565b60405161026f9190611832565b60405180910390f35b348015610283575f80fd5b5061028c61084c565b6040516102999190611628565b60405180910390f35b3480156102ad575f80fd5b506102c860048036038101906102c39190611875565b610889565b005b6102e460048036038101906102df91906119df565b6109b8565b005b3480156102f1575f80fd5b5061030c6004803603810190610307919061167b565b6109dd565b6040516103199190611628565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190611a5f565b610a8b565b604051610355919061159f565b60405180910390f35b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103f657506380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104455750635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606003805461045b90611aca565b80601f016020809104026020016040519081016040528092919081815260200182805461048790611aca565b80156104d25780601f106104a9576101008083540402835291602001916104d2565b820191905f5260205f20905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b5f6104e682610b19565b5f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610527826106a0565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610560575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806105a0575061059f8133610a8b565b5b6105a8575f80fd5b825f808481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6106603382610b26565b610668575f80fd5b610673838383610bba565b505050565b5f600254905090565b61069b83838360405180602001604052805f8152506109b8565b505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663298b9b726106da84610d9e565b6040518263ffffffff1660e01b81526004016106f691906117df565b5f60405180830381865afa92505050801561073357506040513d5f823e3d601f19601f820116820180604052508101906107309190611d0d565b60015b610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990611d9e565b60405180910390fd5b61077f8160600151610da9565b610787575f80fd5b61079081610dde565b610798575f80fd5b6107a58160600151610dfb565b915050919050565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190611de6565b905061084461083f8483610ee9565b61111b565b915050919050565b60606040518060400160405280600c81526020017f436f6c6c656374696f6e4c310000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c0575f80fd5b8060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109ac919061159f565b60405180910390a35050565b6109c3848484610656565b6109cf848484846111b3565b6109d7575f80fd5b50505050565b60606109e882610b19565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c4276cc9610a2285610d9e565b6040518263ffffffff1660e01b8152600401610a3e91906117df565b5f60405180830381865afa158015610a58573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a809190611eaf565b905080915050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610b22816106a0565b5050565b5f80610b31836106a0565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ba057508373ffffffffffffffffffffffffffffffffffffffff16610b88846104dc565b73ffffffffffffffffffffffffffffffffffffffff16145b80610bb15750610bb08185610a8b565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610bda826106a0565b73ffffffffffffffffffffffffffffffffffffffff1614610bf9575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c30575f80fd5b610c39816112a0565b610c416114b7565b600167ffffffffffffffff811115610c5c57610c5b6118bb565b5b604051908082528060200260200182016040528015610c8a5781602001602082028036833780820191505090505b508160400181905250610c9c82610d9e565b81604001515f81518110610cb357610cb2611ef6565b5b60200260200101818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b8585846040518463ffffffff1660e01b8152600401610d10939291906121cd565b5f604051808303815f87803b158015610d27575f80fd5b505af1158015610d39573d5f803e3d5ffd5b50505050818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f815f1b9050919050565b5f600360ff16825f01515f81518110610dc557610dc4611ef6565b5b602001015160f81c60f81b60f81c60ff16149050919050565b5f610df46002548361135490919063ffffffff16565b9050919050565b5f80601467ffffffffffffffff811115610e1857610e176118bb565b5b6040519080825280601f01601f191660200182016040528015610e4a5781602001600182028036833780820191505090505b5090505f5b6014811015610ed357835f0151602182610e699190612236565b81518110610e7a57610e79611ef6565b5b602001015160f81c60f81b828281518110610e9857610e97611ef6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610e4f565b5080610ede906122c3565b60601c915050919050565b610ef16114e1565b5f82604051602001610f039190612349565b60405160208183030381529060405290505f84604051602001610f2691906123a8565b6040516020818303038152906040529050610f3f6114e1565b825182516001610f4f9190612236565b610f599190612236565b67ffffffffffffffff811115610f7257610f716118bb565b5b6040519080825280601f01601f191660200182016040528015610fa45781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610fc757610fc6611ef6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5b835181101561107b5783818151811061101357611012611ef6565b5b602001015160f81c60f81b825f015160018361102f9190612236565b815181106110405761103f611ef6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610ff7565b505f5b825181101561110e5782818151811061109a57611099611ef6565b5b602001015160f81c60f81b825f015185516001846110b89190612236565b6110c29190612236565b815181106110d3576110d2611ef6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350808060010191505061107e565b5080935050505092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ccd15a14836002546040518363ffffffff1660e01b815260040161116d9291906123e9565b602060405180830381865afa158015611188573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ac919061242b565b9050919050565b5f6111bd8461147a565b6111ca5760019050611298565b5f8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff1660e01b815260040161120a949392919061249e565b6020604051808303815f875af1158015611226573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124a91906124fc565b905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611351575f805f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b5f601060ff16611367846020015161148b565b60ff1614611377575f9050611474565b602183602001515f015151146113905761138f612527565b5b5f826040516020016113a2919061256b565b60405160208183030381529060405290505f5b602081101561146d5784602001515f01516001826113d39190612236565b815181106113e4576113e3611ef6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191682828151811061142457611423611ef6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611460575f92505050611474565b80806001019150506113b5565b5060019150505b92915050565b5f80823b90505f8111915050919050565b5f815f01515f815181106114a2576114a1611ef6565b5b602001015160f81c60f81b60f81c9050919050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153981611505565b8114611543575f80fd5b50565b5f8135905061155481611530565b92915050565b5f6020828403121561156f5761156e6114fd565b5b5f61157c84828501611546565b91505092915050565b5f8115159050919050565b61159981611585565b82525050565b5f6020820190506115b25f830184611590565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6115fa826115b8565b61160481856115c2565b93506116148185602086016115d2565b61161d816115e0565b840191505092915050565b5f6020820190508181035f83015261164081846115f0565b905092915050565b5f819050919050565b61165a81611648565b8114611664575f80fd5b50565b5f8135905061167581611651565b92915050565b5f602082840312156116905761168f6114fd565b5b5f61169d84828501611667565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116cf826116a6565b9050919050565b6116df816116c5565b82525050565b5f6020820190506116f85f8301846116d6565b92915050565b611707816116c5565b8114611711575f80fd5b50565b5f81359050611722816116fe565b92915050565b5f806040838503121561173e5761173d6114fd565b5b5f61174b85828601611714565b925050602061175c85828601611667565b9150509250929050565b5f805f6060848603121561177d5761177c6114fd565b5b5f61178a86828701611714565b935050602061179b86828701611714565b92505060406117ac86828701611667565b9150509250925092565b5f819050919050565b5f6117c9826117b6565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b5f6020828403121561180d5761180c6114fd565b5b5f61181a84828501611714565b91505092915050565b61182c81611648565b82525050565b5f6020820190506118455f830184611823565b92915050565b61185481611585565b811461185e575f80fd5b50565b5f8135905061186f8161184b565b92915050565b5f806040838503121561188b5761188a6114fd565b5b5f61189885828601611714565b92505060206118a985828601611861565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6118f1826115e0565b810181811067ffffffffffffffff821117156119105761190f6118bb565b5b80604052505050565b5f6119226114f4565b905061192e82826118e8565b919050565b5f67ffffffffffffffff82111561194d5761194c6118bb565b5b611956826115e0565b9050602081019050919050565b828183375f83830152505050565b5f61198361197e84611933565b611919565b90508281526020810184848401111561199f5761199e6118b7565b5b6119aa848285611963565b509392505050565b5f82601f8301126119c6576119c56118b3565b5b81356119d6848260208601611971565b91505092915050565b5f805f80608085870312156119f7576119f66114fd565b5b5f611a0487828801611714565b9450506020611a1587828801611714565b9350506040611a2687828801611667565b925050606085013567ffffffffffffffff811115611a4757611a46611501565b5b611a53878288016119b2565b91505092959194509250565b5f8060408385031215611a7557611a746114fd565b5b5f611a8285828601611714565b9250506020611a9385828601611714565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ae157607f821691505b602082108103611af457611af3611a9d565b5b50919050565b5f80fd5b5f80fd5b611b0b816117b6565b8114611b15575f80fd5b50565b5f81519050611b2681611b02565b92915050565b5f611b3e611b3984611933565b611919565b905082815260208101848484011115611b5a57611b596118b7565b5b611b658482856115d2565b509392505050565b5f82601f830112611b8157611b806118b3565b5b8151611b91848260208601611b2c565b91505092915050565b5f60208284031215611baf57611bae611afa565b5b611bb96020611919565b90505f82015167ffffffffffffffff811115611bd857611bd7611afe565b5b611be484828501611b6d565b5f8301525092915050565b5f60208284031215611c0457611c03611afa565b5b611c0e6020611919565b90505f82015167ffffffffffffffff811115611c2d57611c2c611afe565b5b611c3984828501611b6d565b5f8301525092915050565b5f60808284031215611c5957611c58611afa565b5b611c636080611919565b90505f611c7284828501611b18565b5f83015250602082015167ffffffffffffffff811115611c9557611c94611afe565b5b611ca184828501611b9a565b602083015250604082015167ffffffffffffffff811115611cc557611cc4611afe565b5b611cd184828501611b6d565b604083015250606082015167ffffffffffffffff811115611cf557611cf4611afe565b5b611d0184828501611bef565b60608301525092915050565b5f60208284031215611d2257611d216114fd565b5b5f82015167ffffffffffffffff811115611d3f57611d3e611501565b5b611d4b84828501611c44565b91505092915050565b7f4552433732314e6f6e6578697374656e74546f6b656e000000000000000000005f82015250565b5f611d886016836115c2565b9150611d9382611d54565b602082019050919050565b5f6020820190508181035f830152611db581611d7c565b9050919050565b611dc5816117b6565b8114611dcf575f80fd5b50565b5f81519050611de081611dbc565b92915050565b5f60208284031215611dfb57611dfa6114fd565b5b5f611e0884828501611dd2565b91505092915050565b5f67ffffffffffffffff821115611e2b57611e2a6118bb565b5b611e34826115e0565b9050602081019050919050565b5f611e53611e4e84611e11565b611919565b905082815260208101848484011115611e6f57611e6e6118b7565b5b611e7a8482856115d2565b509392505050565b5f82601f830112611e9657611e956118b3565b5b8151611ea6848260208601611e41565b91505092915050565b5f60208284031215611ec457611ec36114fd565b5b5f82015167ffffffffffffffff811115611ee157611ee0611501565b5b611eed84828501611e82565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b611f3f81611f23565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611f9282611f6e565b611f9c8185611f78565b9350611fac8185602086016115d2565b611fb5816115e0565b840191505092915050565b5f602083015f8301518482035f860152611fda8282611f88565b9150508091505092915050565b611ff081611648565b82525050565b5f604083015f8301518482035f8601526120108282611fc0565b91505060208301516120256020860182611fe7565b508091505092915050565b5f61203b8383611ff6565b905092915050565b5f602082019050919050565b5f61205982611f45565b6120638185611f4f565b93508360208202850161207585611f5f565b805f5b858110156120b057848403895281516120918582612030565b945061209c83612043565b925060208a01995050600181019050612078565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6120f4816117bf565b82525050565b5f61210583836120eb565b60208301905092915050565b5f602082019050919050565b5f612127826120c2565b61213181856120cc565b935061213c836120dc565b805f5b8381101561216c57815161215388826120fa565b975061215e83612111565b92505060018101905061213f565b5085935050505092915050565b5f606083015f83015161218e5f860182611f36565b50602083015184820360208601526121a6828261204f565b915050604083015184820360408601526121c0828261211d565b9150508091505092915050565b5f6060820190506121e05f8301866116d6565b6121ed60208301856116d6565b81810360408301526121ff8184612179565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61224082611648565b915061224b83611648565b925082820190508082111561226357612262612209565b5b92915050565b5f819050602082019050919050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f6122ae8251612278565b80915050919050565b5f82821b905092915050565b5f6122cd82611f6e565b826122d784612269565b90506122e2816122a3565b925060148210156123225761231d7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008026122b7565b831692505b5050919050565b5f819050919050565b61234361233e826117bf565b612329565b82525050565b5f6123548284612332565b60208201915081905092915050565b5f8160601b9050919050565b5f61237982612363565b9050919050565b5f61238a8261236f565b9050919050565b6123a261239d826116c5565b612380565b82525050565b5f6123b38284612391565b60148201915081905092915050565b5f602083015f8301518482035f8601526123dc8282611f88565b9150508091505092915050565b5f6040820190508181035f83015261240181856123c2565b905061241060208301846117d0565b9392505050565b5f8151905061242581611651565b92915050565b5f602082840312156124405761243f6114fd565b5b5f61244d84828501612417565b91505092915050565b5f82825260208201905092915050565b5f61247082611f6e565b61247a8185612456565b935061248a8185602086016115d2565b612493816115e0565b840191505092915050565b5f6080820190506124b15f8301876116d6565b6124be60208301866116d6565b6124cb6040830185611823565b81810360608301526124dd8184612466565b905095945050505050565b5f815190506124f681611530565b92915050565b5f60208284031215612511576125106114fd565b5b5f61251e848285016124e8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b612565612560826117bf565b612329565b82525050565b5f6125768284612554565b6020820191508190509291505056fea26469706673582212202761f8e3bedaba8888f4349b7573db307ea7bed934b99b5e82dd0c62e366ea8f64736f6c634300081a0033 \ No newline at end of file +6080604052600436106100dc575f3560e01c80636352211e1161007e578063a22cb46511610058578063a22cb465146102a2578063b88d4fde146102ca578063c87b56dd146102e6578063e985e9c514610322576100dc565b80636352211e1461020057806370a082311461023c57806395d89b4114610278576100dc565b8063095ea7b3116100ba578063095ea7b31461018257806323b872dd1461019e5780633d26bb67146101ba57806342842e0e146101e4576100dc565b806301ffc9a7146100e057806306fdde031461011c578063081812fc14610146575b5f5ffd5b3480156100eb575f5ffd5b5061010660048036038101906101019190611566565b61035e565b60405161011391906115ab565b60405180910390f35b348015610127575f5ffd5b5061013061044c565b60405161013d9190611634565b60405180910390f35b348015610151575f5ffd5b5061016c60048036038101906101679190611687565b6104dc565b60405161017991906116f1565b60405180910390f35b61019c60048036038101906101979190611734565b61051d565b005b6101b860048036038101906101b39190611772565b610656565b005b3480156101c5575f5ffd5b506101ce610678565b6040516101db91906117eb565b60405180910390f35b6101fe60048036038101906101f99190611772565b610681565b005b34801561020b575f5ffd5b5061022660048036038101906102219190611687565b6106a0565b60405161023391906116f1565b60405180910390f35b348015610247575f5ffd5b50610262600480360381019061025d9190611804565b6107ad565b60405161026f919061183e565b60405180910390f35b348015610283575f5ffd5b5061028c61084c565b6040516102999190611634565b60405180910390f35b3480156102ad575f5ffd5b506102c860048036038101906102c39190611881565b610889565b005b6102e460048036038101906102df91906119eb565b6109b8565b005b3480156102f1575f5ffd5b5061030c60048036038101906103079190611687565b6109dd565b6040516103199190611634565b60405180910390f35b34801561032d575f5ffd5b5061034860048036038101906103439190611a6b565b610a8b565b60405161035591906115ab565b60405180910390f35b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103f657506380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104455750635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606003805461045b90611ad6565b80601f016020809104026020016040519081016040528092919081815260200182805461048790611ad6565b80156104d25780601f106104a9576101008083540402835291602001916104d2565b820191905f5260205f20905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b5f6104e682610b19565b5f5f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610527826106a0565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610560575f5ffd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806105a0575061059f8133610a8b565b5b6105a8575f5ffd5b825f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6106603382610b26565b610668575f5ffd5b610673838383610bba565b505050565b5f600254905090565b61069b83838360405180602001604052805f8152506109b8565b505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663298b9b726106da84610d9e565b6040518263ffffffff1660e01b81526004016106f691906117eb565b5f60405180830381865afa92505050801561073357506040513d5f823e3d601f19601f820116820180604052508101906107309190611d19565b60015b610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076990611daa565b60405180910390fd5b61077f8160600151610da9565b610787575f5ffd5b61079081610dde565b610798575f5ffd5b6107a58160600151610dfb565b915050919050565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190611df2565b905061084461083f8483610eec565b611124565b915050919050565b60606040518060400160405280600c81526020017f436f6c6c656374696f6e4c310000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c0575f5ffd5b8060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109ac91906115ab565b60405180910390a35050565b6109c3848484610656565b6109cf848484846111bc565b6109d7575f5ffd5b50505050565b60606109e882610b19565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c4276cc9610a2285610d9e565b6040518263ffffffff1660e01b8152600401610a3e91906117eb565b5f60405180830381865afa158015610a58573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610a809190611ebb565b905080915050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610b22816106a0565b5050565b5f5f610b31836106a0565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ba057508373ffffffffffffffffffffffffffffffffffffffff16610b88846104dc565b73ffffffffffffffffffffffffffffffffffffffff16145b80610bb15750610bb08185610a8b565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610bda826106a0565b73ffffffffffffffffffffffffffffffffffffffff1614610bf9575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c30575f5ffd5b610c39816112a9565b610c416114c3565b600167ffffffffffffffff811115610c5c57610c5b6118c7565b5b604051908082528060200260200182016040528015610c8a5781602001602082028036833780820191505090505b508160400181905250610c9c82610d9e565b81604001515f81518110610cb357610cb2611f02565b5b60200260200101818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b8585846040518463ffffffff1660e01b8152600401610d10939291906121d9565b5f604051808303815f87803b158015610d27575f5ffd5b505af1158015610d39573d5f5f3e3d5ffd5b50505050818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f815f1b9050919050565b5f600360ff16825f01515f81518110610dc557610dc4611f02565b5b602001015160f81c60f81b60f81c60ff16149050919050565b5f610df46002548361135d90919063ffffffff16565b9050919050565b5f5f601467ffffffffffffffff811115610e1857610e176118c7565b5b6040519080825280601f01601f191660200182016040528015610e4a5781602001600182028036833780820191505090505b5090505f5f90505b6014811015610ed657835f0151602182610e6c9190612242565b81518110610e7d57610e7c611f02565b5b602001015160f81c60f81b828281518110610e9b57610e9a611f02565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610e52565b5080610ee1906122cf565b60601c915050919050565b610ef46114ed565b5f82604051602001610f069190612355565b60405160208183030381529060405290505f84604051602001610f2991906123b4565b6040516020818303038152906040529050610f426114ed565b825182516001610f529190612242565b610f5c9190612242565b67ffffffffffffffff811115610f7557610f746118c7565b5b6040519080825280601f01601f191660200182016040528015610fa75781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610fca57610fc9611f02565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5f90505b83518110156110815783818151811061101957611018611f02565b5b602001015160f81c60f81b825f01516001836110359190612242565b8151811061104657611045611f02565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610ffd565b505f5f90505b8251811015611117578281815181106110a3576110a2611f02565b5b602001015160f81c60f81b825f015185516001846110c19190612242565b6110cb9190612242565b815181106110dc576110db611f02565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050611087565b5080935050505092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ccd15a14836002546040518363ffffffff1660e01b81526004016111769291906123f5565b602060405180830381865afa158015611191573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b59190612437565b9050919050565b5f6111c684611486565b6111d357600190506112a1565b5f8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff1660e01b815260040161121394939291906124aa565b6020604051808303815f875af115801561122f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112539190612508565b905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff165f5f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135a575f5f5f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b5f601060ff166113708460200151611497565b60ff1614611380575f9050611480565b602183602001515f0151511461139957611398612533565b5b5f826040516020016113ab9190612577565b60405160208183030381529060405290505f5f90505b60208110156114795784602001515f01516001826113df9190612242565b815181106113f0576113ef611f02565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168282815181106114305761142f611f02565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461146c575f92505050611480565b80806001019150506113c1565b5060019150505b92915050565b5f5f823b90505f8111915050919050565b5f815f01515f815181106114ae576114ad611f02565b5b602001015160f81c60f81b60f81c9050919050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61154581611511565b811461154f575f5ffd5b50565b5f813590506115608161153c565b92915050565b5f6020828403121561157b5761157a611509565b5b5f61158884828501611552565b91505092915050565b5f8115159050919050565b6115a581611591565b82525050565b5f6020820190506115be5f83018461159c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611606826115c4565b61161081856115ce565b93506116208185602086016115de565b611629816115ec565b840191505092915050565b5f6020820190508181035f83015261164c81846115fc565b905092915050565b5f819050919050565b61166681611654565b8114611670575f5ffd5b50565b5f813590506116818161165d565b92915050565b5f6020828403121561169c5761169b611509565b5b5f6116a984828501611673565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116db826116b2565b9050919050565b6116eb816116d1565b82525050565b5f6020820190506117045f8301846116e2565b92915050565b611713816116d1565b811461171d575f5ffd5b50565b5f8135905061172e8161170a565b92915050565b5f5f6040838503121561174a57611749611509565b5b5f61175785828601611720565b925050602061176885828601611673565b9150509250929050565b5f5f5f6060848603121561178957611788611509565b5b5f61179686828701611720565b93505060206117a786828701611720565b92505060406117b886828701611673565b9150509250925092565b5f819050919050565b5f6117d5826117c2565b9050919050565b6117e5816117cb565b82525050565b5f6020820190506117fe5f8301846117dc565b92915050565b5f6020828403121561181957611818611509565b5b5f61182684828501611720565b91505092915050565b61183881611654565b82525050565b5f6020820190506118515f83018461182f565b92915050565b61186081611591565b811461186a575f5ffd5b50565b5f8135905061187b81611857565b92915050565b5f5f6040838503121561189757611896611509565b5b5f6118a485828601611720565b92505060206118b58582860161186d565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6118fd826115ec565b810181811067ffffffffffffffff8211171561191c5761191b6118c7565b5b80604052505050565b5f61192e611500565b905061193a82826118f4565b919050565b5f67ffffffffffffffff821115611959576119586118c7565b5b611962826115ec565b9050602081019050919050565b828183375f83830152505050565b5f61198f61198a8461193f565b611925565b9050828152602081018484840111156119ab576119aa6118c3565b5b6119b684828561196f565b509392505050565b5f82601f8301126119d2576119d16118bf565b5b81356119e284826020860161197d565b91505092915050565b5f5f5f5f60808587031215611a0357611a02611509565b5b5f611a1087828801611720565b9450506020611a2187828801611720565b9350506040611a3287828801611673565b925050606085013567ffffffffffffffff811115611a5357611a5261150d565b5b611a5f878288016119be565b91505092959194509250565b5f5f60408385031215611a8157611a80611509565b5b5f611a8e85828601611720565b9250506020611a9f85828601611720565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611aed57607f821691505b602082108103611b0057611aff611aa9565b5b50919050565b5f5ffd5b5f5ffd5b611b17816117c2565b8114611b21575f5ffd5b50565b5f81519050611b3281611b0e565b92915050565b5f611b4a611b458461193f565b611925565b905082815260208101848484011115611b6657611b656118c3565b5b611b718482856115de565b509392505050565b5f82601f830112611b8d57611b8c6118bf565b5b8151611b9d848260208601611b38565b91505092915050565b5f60208284031215611bbb57611bba611b06565b5b611bc56020611925565b90505f82015167ffffffffffffffff811115611be457611be3611b0a565b5b611bf084828501611b79565b5f8301525092915050565b5f60208284031215611c1057611c0f611b06565b5b611c1a6020611925565b90505f82015167ffffffffffffffff811115611c3957611c38611b0a565b5b611c4584828501611b79565b5f8301525092915050565b5f60808284031215611c6557611c64611b06565b5b611c6f6080611925565b90505f611c7e84828501611b24565b5f83015250602082015167ffffffffffffffff811115611ca157611ca0611b0a565b5b611cad84828501611ba6565b602083015250604082015167ffffffffffffffff811115611cd157611cd0611b0a565b5b611cdd84828501611b79565b604083015250606082015167ffffffffffffffff811115611d0157611d00611b0a565b5b611d0d84828501611bfb565b60608301525092915050565b5f60208284031215611d2e57611d2d611509565b5b5f82015167ffffffffffffffff811115611d4b57611d4a61150d565b5b611d5784828501611c50565b91505092915050565b7f4552433732314e6f6e6578697374656e74546f6b656e000000000000000000005f82015250565b5f611d946016836115ce565b9150611d9f82611d60565b602082019050919050565b5f6020820190508181035f830152611dc181611d88565b9050919050565b611dd1816117c2565b8114611ddb575f5ffd5b50565b5f81519050611dec81611dc8565b92915050565b5f60208284031215611e0757611e06611509565b5b5f611e1484828501611dde565b91505092915050565b5f67ffffffffffffffff821115611e3757611e366118c7565b5b611e40826115ec565b9050602081019050919050565b5f611e5f611e5a84611e1d565b611925565b905082815260208101848484011115611e7b57611e7a6118c3565b5b611e868482856115de565b509392505050565b5f82601f830112611ea257611ea16118bf565b5b8151611eb2848260208601611e4d565b91505092915050565b5f60208284031215611ed057611ecf611509565b5b5f82015167ffffffffffffffff811115611eed57611eec61150d565b5b611ef984828501611e8e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b611f4b81611f2f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611f9e82611f7a565b611fa88185611f84565b9350611fb88185602086016115de565b611fc1816115ec565b840191505092915050565b5f602083015f8301518482035f860152611fe68282611f94565b9150508091505092915050565b611ffc81611654565b82525050565b5f604083015f8301518482035f86015261201c8282611fcc565b91505060208301516120316020860182611ff3565b508091505092915050565b5f6120478383612002565b905092915050565b5f602082019050919050565b5f61206582611f51565b61206f8185611f5b565b93508360208202850161208185611f6b565b805f5b858110156120bc578484038952815161209d858261203c565b94506120a88361204f565b925060208a01995050600181019050612084565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612100816117cb565b82525050565b5f61211183836120f7565b60208301905092915050565b5f602082019050919050565b5f612133826120ce565b61213d81856120d8565b9350612148836120e8565b805f5b8381101561217857815161215f8882612106565b975061216a8361211d565b92505060018101905061214b565b5085935050505092915050565b5f606083015f83015161219a5f860182611f42565b50602083015184820360208601526121b2828261205b565b915050604083015184820360408601526121cc8282612129565b9150508091505092915050565b5f6060820190506121ec5f8301866116e2565b6121f960208301856116e2565b818103604083015261220b8184612185565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61224c82611654565b915061225783611654565b925082820190508082111561226f5761226e612215565b5b92915050565b5f819050602082019050919050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f6122ba8251612284565b80915050919050565b5f82821b905092915050565b5f6122d982611f7a565b826122e384612275565b90506122ee816122af565b9250601482101561232e576123297fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008026122c3565b831692505b5050919050565b5f819050919050565b61234f61234a826117cb565b612335565b82525050565b5f612360828461233e565b60208201915081905092915050565b5f8160601b9050919050565b5f6123858261236f565b9050919050565b5f6123968261237b565b9050919050565b6123ae6123a9826116d1565b61238c565b82525050565b5f6123bf828461239d565b60148201915081905092915050565b5f602083015f8301518482035f8601526123e88282611f94565b9150508091505092915050565b5f6040820190508181035f83015261240d81856123ce565b905061241c60208301846117dc565b9392505050565b5f815190506124318161165d565b92915050565b5f6020828403121561244c5761244b611509565b5b5f61245984828501612423565b91505092915050565b5f82825260208201905092915050565b5f61247c82611f7a565b6124868185612462565b93506124968185602086016115de565b61249f816115ec565b840191505092915050565b5f6080820190506124bd5f8301876116e2565b6124ca60208301866116e2565b6124d7604083018561182f565b81810360608301526124e98184612472565b905095945050505050565b5f815190506125028161153c565b92915050565b5f6020828403121561251d5761251c611509565b5b5f61252a848285016124f4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b61257161256c826117cb565b612335565b82525050565b5f6125828284612560565b6020820191508190509291505056fea2646970667358221220e460df592f5aad9699ba16aee7a5c266ed56954fb6672f8a7372b01ca151778664736f6c634300081c0033 \ No newline at end of file diff --git a/packages/vm/core/evm/iscmagic/ERC721NFTs.bin-runtime b/packages/vm/core/evm/iscmagic/ERC721NFTs.bin-runtime index 85a2081308..3bbf5c1c74 100644 --- a/packages/vm/core/evm/iscmagic/ERC721NFTs.bin-runtime +++ b/packages/vm/core/evm/iscmagic/ERC721NFTs.bin-runtime @@ -1 +1 @@ -6080604052600436106100c1575f3560e01c80636352211e1161007e578063a22cb46511610058578063a22cb4651461025d578063b88d4fde14610285578063c87b56dd146102a1578063e985e9c5146102dd576100c1565b80636352211e146101bb57806370a08231146101f757806395d89b4114610233576100c1565b806301ffc9a7146100c557806306fdde0314610101578063081812fc1461012b578063095ea7b31461016757806323b872dd1461018357806342842e0e1461019f575b5f80fd5b3480156100d0575f80fd5b506100eb60048036038101906100e69190611350565b610319565b6040516100f89190611395565b60405180910390f35b34801561010c575f80fd5b50610115610407565b604051610122919061141e565b60405180910390f35b348015610136575f80fd5b50610151600480360381019061014c9190611471565b610444565b60405161015e91906114db565b60405180910390f35b610181600480360381019061017c919061151e565b610485565b005b61019d6004803603810190610198919061155c565b6105be565b005b6101b960048036038101906101b4919061155c565b6105e0565b005b3480156101c6575f80fd5b506101e160048036038101906101dc9190611471565b6105ff565b6040516101ee91906114db565b60405180910390f35b348015610202575f80fd5b5061021d600480360381019061021891906115ac565b61070c565b60405161022a91906115e6565b60405180910390f35b34801561023e575f80fd5b506102476107ab565b604051610254919061141e565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190611629565b6107e8565b005b61029f600480360381019061029a9190611793565b610917565b005b3480156102ac575f80fd5b506102c760048036038101906102c29190611471565b61093c565b6040516102d4919061141e565b60405180910390f35b3480156102e8575f80fd5b5061030360048036038101906102fe9190611813565b6109ea565b6040516103109190611395565b60405180910390f35b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103b157506380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104005750635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606040518060400160405280600781526020017f4c31204e46547300000000000000000000000000000000000000000000000000815250905090565b5f61044e82610a78565b5f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f61048f826105ff565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104c8575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610508575061050781336109ea565b5b610510575f80fd5b825f808481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6105c83382610a85565b6105d0575f80fd5b6105db838383610b19565b505050565b6105fa83838360405180602001604052805f815250610917565b505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663298b9b7261063984610cfd565b6040518263ffffffff1660e01b8152600401610655919061187a565b5f60405180830381865afa92505050801561069257506040513d5f823e3d601f19601f8201168201806040525081019061068f9190611aa6565b60015b6106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890611b37565b60405180910390fd5b6106de8160600151610d08565b6106e6575f80fd5b6106ef81610d3d565b6106f7575f80fd5b6107048160600151610d47565b915050919050565b5f8073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f9190611b7f565b90506107a361079e8483610e35565b611067565b915050919050565b60606040518060400160405280600c81526020017f436f6c6c656374696f6e4c310000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361081f575f80fd5b8060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161090b9190611395565b60405180910390a35050565b6109228484846105be565b61092e848484846110fb565b610936575f80fd5b50505050565b606061094782610a78565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c4276cc961098185610cfd565b6040518263ffffffff1660e01b815260040161099d919061187a565b5f60405180830381865afa1580156109b7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906109df9190611c48565b905080915050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610a81816105ff565b5050565b5f80610a90836105ff565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610aff57508373ffffffffffffffffffffffffffffffffffffffff16610ae784610444565b73ffffffffffffffffffffffffffffffffffffffff16145b80610b105750610b0f81856109ea565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610b39826105ff565b73ffffffffffffffffffffffffffffffffffffffff1614610b58575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b8f575f80fd5b610b98816111e8565b610ba06112ad565b600167ffffffffffffffff811115610bbb57610bba61166f565b5b604051908082528060200260200182016040528015610be95781602001602082028036833780820191505090505b508160400181905250610bfb82610cfd565b81604001515f81518110610c1257610c11611c8f565b5b60200260200101818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b8585846040518463ffffffff1660e01b8152600401610c6f93929190611f66565b5f604051808303815f87803b158015610c86575f80fd5b505af1158015610c98573d5f803e3d5ffd5b50505050818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f815f1b9050919050565b5f600360ff16825f01515f81518110610d2457610d23611c8f565b5b602001015160f81c60f81b60f81c60ff16149050919050565b5f60019050919050565b5f80601467ffffffffffffffff811115610d6457610d6361166f565b5b6040519080825280601f01601f191660200182016040528015610d965781602001600182028036833780820191505090505b5090505f5b6014811015610e1f57835f0151602182610db59190611fcf565b81518110610dc657610dc5611c8f565b5b602001015160f81c60f81b828281518110610de457610de3611c8f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610d9b565b5080610e2a9061205c565b60601c915050919050565b610e3d6112d7565b5f82604051602001610e4f91906120e2565b60405160208183030381529060405290505f84604051602001610e729190612141565b6040516020818303038152906040529050610e8b6112d7565b825182516001610e9b9190611fcf565b610ea59190611fcf565b67ffffffffffffffff811115610ebe57610ebd61166f565b5b6040519080825280601f01601f191660200182016040528015610ef05781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610f1357610f12611c8f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5b8351811015610fc757838181518110610f5f57610f5e611c8f565b5b602001015160f81c60f81b825f0151600183610f7b9190611fcf565b81518110610f8c57610f8b611c8f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610f43565b505f5b825181101561105a57828181518110610fe657610fe5611c8f565b5b602001015160f81c60f81b825f015185516001846110049190611fcf565b61100e9190611fcf565b8151811061101f5761101e611c8f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610fca565b5080935050505092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630d90ec7b836040518263ffffffff1660e01b81526004016110b59190612182565b602060405180830381865afa1580156110d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f491906121b6565b9050919050565b5f6111058461129c565b61111257600190506111e0565b5f8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff1660e01b81526004016111529493929190612229565b6020604051808303815f875af115801561116e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111929190612287565b905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611299575f805f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b5f80823b90505f8111915050919050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61132f816112fb565b8114611339575f80fd5b50565b5f8135905061134a81611326565b92915050565b5f60208284031215611365576113646112f3565b5b5f6113728482850161133c565b91505092915050565b5f8115159050919050565b61138f8161137b565b82525050565b5f6020820190506113a85f830184611386565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6113f0826113ae565b6113fa81856113b8565b935061140a8185602086016113c8565b611413816113d6565b840191505092915050565b5f6020820190508181035f83015261143681846113e6565b905092915050565b5f819050919050565b6114508161143e565b811461145a575f80fd5b50565b5f8135905061146b81611447565b92915050565b5f60208284031215611486576114856112f3565b5b5f6114938482850161145d565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114c58261149c565b9050919050565b6114d5816114bb565b82525050565b5f6020820190506114ee5f8301846114cc565b92915050565b6114fd816114bb565b8114611507575f80fd5b50565b5f81359050611518816114f4565b92915050565b5f8060408385031215611534576115336112f3565b5b5f6115418582860161150a565b92505060206115528582860161145d565b9150509250929050565b5f805f60608486031215611573576115726112f3565b5b5f6115808682870161150a565b93505060206115918682870161150a565b92505060406115a28682870161145d565b9150509250925092565b5f602082840312156115c1576115c06112f3565b5b5f6115ce8482850161150a565b91505092915050565b6115e08161143e565b82525050565b5f6020820190506115f95f8301846115d7565b92915050565b6116088161137b565b8114611612575f80fd5b50565b5f81359050611623816115ff565b92915050565b5f806040838503121561163f5761163e6112f3565b5b5f61164c8582860161150a565b925050602061165d85828601611615565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116a5826113d6565b810181811067ffffffffffffffff821117156116c4576116c361166f565b5b80604052505050565b5f6116d66112ea565b90506116e2828261169c565b919050565b5f67ffffffffffffffff8211156117015761170061166f565b5b61170a826113d6565b9050602081019050919050565b828183375f83830152505050565b5f611737611732846116e7565b6116cd565b9050828152602081018484840111156117535761175261166b565b5b61175e848285611717565b509392505050565b5f82601f83011261177a57611779611667565b5b813561178a848260208601611725565b91505092915050565b5f805f80608085870312156117ab576117aa6112f3565b5b5f6117b88782880161150a565b94505060206117c98782880161150a565b93505060406117da8782880161145d565b925050606085013567ffffffffffffffff8111156117fb576117fa6112f7565b5b61180787828801611766565b91505092959194509250565b5f8060408385031215611829576118286112f3565b5b5f6118368582860161150a565b92505060206118478582860161150a565b9150509250929050565b5f819050919050565b5f61186482611851565b9050919050565b6118748161185a565b82525050565b5f60208201905061188d5f83018461186b565b92915050565b5f80fd5b5f80fd5b6118a481611851565b81146118ae575f80fd5b50565b5f815190506118bf8161189b565b92915050565b5f6118d76118d2846116e7565b6116cd565b9050828152602081018484840111156118f3576118f261166b565b5b6118fe8482856113c8565b509392505050565b5f82601f83011261191a57611919611667565b5b815161192a8482602086016118c5565b91505092915050565b5f6020828403121561194857611947611893565b5b61195260206116cd565b90505f82015167ffffffffffffffff81111561197157611970611897565b5b61197d84828501611906565b5f8301525092915050565b5f6020828403121561199d5761199c611893565b5b6119a760206116cd565b90505f82015167ffffffffffffffff8111156119c6576119c5611897565b5b6119d284828501611906565b5f8301525092915050565b5f608082840312156119f2576119f1611893565b5b6119fc60806116cd565b90505f611a0b848285016118b1565b5f83015250602082015167ffffffffffffffff811115611a2e57611a2d611897565b5b611a3a84828501611933565b602083015250604082015167ffffffffffffffff811115611a5e57611a5d611897565b5b611a6a84828501611906565b604083015250606082015167ffffffffffffffff811115611a8e57611a8d611897565b5b611a9a84828501611988565b60608301525092915050565b5f60208284031215611abb57611aba6112f3565b5b5f82015167ffffffffffffffff811115611ad857611ad76112f7565b5b611ae4848285016119dd565b91505092915050565b7f4552433732314e6f6e6578697374656e74546f6b656e000000000000000000005f82015250565b5f611b216016836113b8565b9150611b2c82611aed565b602082019050919050565b5f6020820190508181035f830152611b4e81611b15565b9050919050565b611b5e81611851565b8114611b68575f80fd5b50565b5f81519050611b7981611b55565b92915050565b5f60208284031215611b9457611b936112f3565b5b5f611ba184828501611b6b565b91505092915050565b5f67ffffffffffffffff821115611bc457611bc361166f565b5b611bcd826113d6565b9050602081019050919050565b5f611bec611be784611baa565b6116cd565b905082815260208101848484011115611c0857611c0761166b565b5b611c138482856113c8565b509392505050565b5f82601f830112611c2f57611c2e611667565b5b8151611c3f848260208601611bda565b91505092915050565b5f60208284031215611c5d57611c5c6112f3565b5b5f82015167ffffffffffffffff811115611c7a57611c796112f7565b5b611c8684828501611c1b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b611cd881611cbc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d2b82611d07565b611d358185611d11565b9350611d458185602086016113c8565b611d4e816113d6565b840191505092915050565b5f602083015f8301518482035f860152611d738282611d21565b9150508091505092915050565b611d898161143e565b82525050565b5f604083015f8301518482035f860152611da98282611d59565b9150506020830151611dbe6020860182611d80565b508091505092915050565b5f611dd48383611d8f565b905092915050565b5f602082019050919050565b5f611df282611cde565b611dfc8185611ce8565b935083602082028501611e0e85611cf8565b805f5b85811015611e495784840389528151611e2a8582611dc9565b9450611e3583611ddc565b925060208a01995050600181019050611e11565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611e8d8161185a565b82525050565b5f611e9e8383611e84565b60208301905092915050565b5f602082019050919050565b5f611ec082611e5b565b611eca8185611e65565b9350611ed583611e75565b805f5b83811015611f05578151611eec8882611e93565b9750611ef783611eaa565b925050600181019050611ed8565b5085935050505092915050565b5f606083015f830151611f275f860182611ccf565b5060208301518482036020860152611f3f8282611de8565b91505060408301518482036040860152611f598282611eb6565b9150508091505092915050565b5f606082019050611f795f8301866114cc565b611f8660208301856114cc565b8181036040830152611f988184611f12565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fd98261143e565b9150611fe48361143e565b9250828201905080821115611ffc57611ffb611fa2565b5b92915050565b5f819050602082019050919050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f6120478251612011565b80915050919050565b5f82821b905092915050565b5f61206682611d07565b8261207084612002565b905061207b8161203c565b925060148210156120bb576120b67fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083601403600802612050565b831692505b5050919050565b5f819050919050565b6120dc6120d78261185a565b6120c2565b82525050565b5f6120ed82846120cb565b60208201915081905092915050565b5f8160601b9050919050565b5f612112826120fc565b9050919050565b5f61212382612108565b9050919050565b61213b612136826114bb565b612119565b82525050565b5f61214c828461212a565b60148201915081905092915050565b5f602083015f8301518482035f8601526121758282611d21565b9150508091505092915050565b5f6020820190508181035f83015261219a818461215b565b905092915050565b5f815190506121b081611447565b92915050565b5f602082840312156121cb576121ca6112f3565b5b5f6121d8848285016121a2565b91505092915050565b5f82825260208201905092915050565b5f6121fb82611d07565b61220581856121e1565b93506122158185602086016113c8565b61221e816113d6565b840191505092915050565b5f60808201905061223c5f8301876114cc565b61224960208301866114cc565b61225660408301856115d7565b818103606083015261226881846121f1565b905095945050505050565b5f8151905061228181611326565b92915050565b5f6020828403121561229c5761229b6112f3565b5b5f6122a984828501612273565b9150509291505056fea2646970667358221220f3698eaf20cd5c04eb6cf131339c52b39463e694f6a9ff429ab39ff2a9c881e264736f6c634300081a0033 \ No newline at end of file +6080604052600436106100c1575f3560e01c80636352211e1161007e578063a22cb46511610058578063a22cb4651461025d578063b88d4fde14610285578063c87b56dd146102a1578063e985e9c5146102dd576100c1565b80636352211e146101bb57806370a08231146101f757806395d89b4114610233576100c1565b806301ffc9a7146100c557806306fdde0314610101578063081812fc1461012b578063095ea7b31461016757806323b872dd1461018357806342842e0e1461019f575b5f5ffd5b3480156100d0575f5ffd5b506100eb60048036038101906100e69190611359565b610319565b6040516100f8919061139e565b60405180910390f35b34801561010c575f5ffd5b50610115610407565b6040516101229190611427565b60405180910390f35b348015610136575f5ffd5b50610151600480360381019061014c919061147a565b610444565b60405161015e91906114e4565b60405180910390f35b610181600480360381019061017c9190611527565b610485565b005b61019d60048036038101906101989190611565565b6105be565b005b6101b960048036038101906101b49190611565565b6105e0565b005b3480156101c6575f5ffd5b506101e160048036038101906101dc919061147a565b6105ff565b6040516101ee91906114e4565b60405180910390f35b348015610202575f5ffd5b5061021d600480360381019061021891906115b5565b61070c565b60405161022a91906115ef565b60405180910390f35b34801561023e575f5ffd5b506102476107ab565b6040516102549190611427565b60405180910390f35b348015610268575f5ffd5b50610283600480360381019061027e9190611632565b6107e8565b005b61029f600480360381019061029a919061179c565b610917565b005b3480156102ac575f5ffd5b506102c760048036038101906102c2919061147a565b61093c565b6040516102d49190611427565b60405180910390f35b3480156102e8575f5ffd5b5061030360048036038101906102fe919061181c565b6109ea565b604051610310919061139e565b60405180910390f35b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103b157506380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104005750635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606040518060400160405280600781526020017f4c31204e46547300000000000000000000000000000000000000000000000000815250905090565b5f61044e82610a78565b5f5f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f61048f826105ff565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104c8575f5ffd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610508575061050781336109ea565b5b610510575f5ffd5b825f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6105c83382610a85565b6105d0575f5ffd5b6105db838383610b19565b505050565b6105fa83838360405180602001604052805f815250610917565b505050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663298b9b7261063984610cfd565b6040518263ffffffff1660e01b81526004016106559190611883565b5f60405180830381865afa92505050801561069257506040513d5f823e3d601f19601f8201168201806040525081019061068f9190611aaf565b60015b6106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890611b40565b60405180910390fd5b6106de8160600151610d08565b6106e6575f5ffd5b6106ef81610d3d565b6106f7575f5ffd5b6107048160600151610d47565b915050919050565b5f5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663564b81ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f9190611b88565b90506107a361079e8483610e38565b611070565b915050919050565b60606040518060400160405280600c81526020017f436f6c6c656374696f6e4c310000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361081f575f5ffd5b8060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161090b919061139e565b60405180910390a35050565b6109228484846105be565b61092e84848484611104565b610936575f5ffd5b50505050565b606061094782610a78565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c4276cc961098185610cfd565b6040518263ffffffff1660e01b815260040161099d9190611883565b5f60405180830381865afa1580156109b7573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906109df9190611c51565b905080915050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610a81816105ff565b5050565b5f5f610a90836105ff565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610aff57508373ffffffffffffffffffffffffffffffffffffffff16610ae784610444565b73ffffffffffffffffffffffffffffffffffffffff16145b80610b105750610b0f81856109ea565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610b39826105ff565b73ffffffffffffffffffffffffffffffffffffffff1614610b58575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b8f575f5ffd5b610b98816111f1565b610ba06112b6565b600167ffffffffffffffff811115610bbb57610bba611678565b5b604051908082528060200260200182016040528015610be95781602001602082028036833780820191505090505b508160400181905250610bfb82610cfd565b81604001515f81518110610c1257610c11611c98565b5b60200260200101818152505073107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a4b74d1b8585846040518463ffffffff1660e01b8152600401610c6f93929190611f6f565b5f604051808303815f87803b158015610c86575f5ffd5b505af1158015610c98573d5f5f3e3d5ffd5b50505050818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f815f1b9050919050565b5f600360ff16825f01515f81518110610d2457610d23611c98565b5b602001015160f81c60f81b60f81c60ff16149050919050565b5f60019050919050565b5f5f601467ffffffffffffffff811115610d6457610d63611678565b5b6040519080825280601f01601f191660200182016040528015610d965781602001600182028036833780820191505090505b5090505f5f90505b6014811015610e2257835f0151602182610db89190611fd8565b81518110610dc957610dc8611c98565b5b602001015160f81c60f81b828281518110610de757610de6611c98565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610d9e565b5080610e2d90612065565b60601c915050919050565b610e406112e0565b5f82604051602001610e5291906120eb565b60405160208183030381529060405290505f84604051602001610e75919061214a565b6040516020818303038152906040529050610e8e6112e0565b825182516001610e9e9190611fd8565b610ea89190611fd8565b67ffffffffffffffff811115610ec157610ec0611678565b5b6040519080825280601f01601f191660200182016040528015610ef35781602001600182028036833780820191505090505b50815f0181905250600360f81b815f01515f81518110610f1657610f15611c98565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f5f90505b8351811015610fcd57838181518110610f6557610f64611c98565b5b602001015160f81c60f81b825f0151600183610f819190611fd8565b81518110610f9257610f91611c98565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610f49565b505f5f90505b825181101561106357828181518110610fef57610fee611c98565b5b602001015160f81c60f81b825f0151855160018461100d9190611fd8565b6110179190611fd8565b8151811061102857611027611c98565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050610fd3565b5080935050505092915050565b5f73107400000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16630d90ec7b836040518263ffffffff1660e01b81526004016110be919061218b565b602060405180830381865afa1580156110d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fd91906121bf565b9050919050565b5f61110e846112a5565b61111b57600190506111e9565b5f8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff1660e01b815260040161115b9493929190612232565b6020604051808303815f875af1158015611177573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119b9190612290565b905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff165f5f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a2575f5f5f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b5f5f823b90505f8111915050919050565b60405180606001604052805f67ffffffffffffffff16815260200160608152602001606081525090565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61133881611304565b8114611342575f5ffd5b50565b5f813590506113538161132f565b92915050565b5f6020828403121561136e5761136d6112fc565b5b5f61137b84828501611345565b91505092915050565b5f8115159050919050565b61139881611384565b82525050565b5f6020820190506113b15f83018461138f565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6113f9826113b7565b61140381856113c1565b93506114138185602086016113d1565b61141c816113df565b840191505092915050565b5f6020820190508181035f83015261143f81846113ef565b905092915050565b5f819050919050565b61145981611447565b8114611463575f5ffd5b50565b5f8135905061147481611450565b92915050565b5f6020828403121561148f5761148e6112fc565b5b5f61149c84828501611466565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114ce826114a5565b9050919050565b6114de816114c4565b82525050565b5f6020820190506114f75f8301846114d5565b92915050565b611506816114c4565b8114611510575f5ffd5b50565b5f81359050611521816114fd565b92915050565b5f5f6040838503121561153d5761153c6112fc565b5b5f61154a85828601611513565b925050602061155b85828601611466565b9150509250929050565b5f5f5f6060848603121561157c5761157b6112fc565b5b5f61158986828701611513565b935050602061159a86828701611513565b92505060406115ab86828701611466565b9150509250925092565b5f602082840312156115ca576115c96112fc565b5b5f6115d784828501611513565b91505092915050565b6115e981611447565b82525050565b5f6020820190506116025f8301846115e0565b92915050565b61161181611384565b811461161b575f5ffd5b50565b5f8135905061162c81611608565b92915050565b5f5f60408385031215611648576116476112fc565b5b5f61165585828601611513565b92505060206116668582860161161e565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116ae826113df565b810181811067ffffffffffffffff821117156116cd576116cc611678565b5b80604052505050565b5f6116df6112f3565b90506116eb82826116a5565b919050565b5f67ffffffffffffffff82111561170a57611709611678565b5b611713826113df565b9050602081019050919050565b828183375f83830152505050565b5f61174061173b846116f0565b6116d6565b90508281526020810184848401111561175c5761175b611674565b5b611767848285611720565b509392505050565b5f82601f83011261178357611782611670565b5b813561179384826020860161172e565b91505092915050565b5f5f5f5f608085870312156117b4576117b36112fc565b5b5f6117c187828801611513565b94505060206117d287828801611513565b93505060406117e387828801611466565b925050606085013567ffffffffffffffff81111561180457611803611300565b5b6118108782880161176f565b91505092959194509250565b5f5f60408385031215611832576118316112fc565b5b5f61183f85828601611513565b925050602061185085828601611513565b9150509250929050565b5f819050919050565b5f61186d8261185a565b9050919050565b61187d81611863565b82525050565b5f6020820190506118965f830184611874565b92915050565b5f5ffd5b5f5ffd5b6118ad8161185a565b81146118b7575f5ffd5b50565b5f815190506118c8816118a4565b92915050565b5f6118e06118db846116f0565b6116d6565b9050828152602081018484840111156118fc576118fb611674565b5b6119078482856113d1565b509392505050565b5f82601f83011261192357611922611670565b5b81516119338482602086016118ce565b91505092915050565b5f602082840312156119515761195061189c565b5b61195b60206116d6565b90505f82015167ffffffffffffffff81111561197a576119796118a0565b5b6119868482850161190f565b5f8301525092915050565b5f602082840312156119a6576119a561189c565b5b6119b060206116d6565b90505f82015167ffffffffffffffff8111156119cf576119ce6118a0565b5b6119db8482850161190f565b5f8301525092915050565b5f608082840312156119fb576119fa61189c565b5b611a0560806116d6565b90505f611a14848285016118ba565b5f83015250602082015167ffffffffffffffff811115611a3757611a366118a0565b5b611a438482850161193c565b602083015250604082015167ffffffffffffffff811115611a6757611a666118a0565b5b611a738482850161190f565b604083015250606082015167ffffffffffffffff811115611a9757611a966118a0565b5b611aa384828501611991565b60608301525092915050565b5f60208284031215611ac457611ac36112fc565b5b5f82015167ffffffffffffffff811115611ae157611ae0611300565b5b611aed848285016119e6565b91505092915050565b7f4552433732314e6f6e6578697374656e74546f6b656e000000000000000000005f82015250565b5f611b2a6016836113c1565b9150611b3582611af6565b602082019050919050565b5f6020820190508181035f830152611b5781611b1e565b9050919050565b611b678161185a565b8114611b71575f5ffd5b50565b5f81519050611b8281611b5e565b92915050565b5f60208284031215611b9d57611b9c6112fc565b5b5f611baa84828501611b74565b91505092915050565b5f67ffffffffffffffff821115611bcd57611bcc611678565b5b611bd6826113df565b9050602081019050919050565b5f611bf5611bf084611bb3565b6116d6565b905082815260208101848484011115611c1157611c10611674565b5b611c1c8482856113d1565b509392505050565b5f82601f830112611c3857611c37611670565b5b8151611c48848260208601611be3565b91505092915050565b5f60208284031215611c6657611c656112fc565b5b5f82015167ffffffffffffffff811115611c8357611c82611300565b5b611c8f84828501611c24565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82169050919050565b611ce181611cc5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3482611d10565b611d3e8185611d1a565b9350611d4e8185602086016113d1565b611d57816113df565b840191505092915050565b5f602083015f8301518482035f860152611d7c8282611d2a565b9150508091505092915050565b611d9281611447565b82525050565b5f604083015f8301518482035f860152611db28282611d62565b9150506020830151611dc76020860182611d89565b508091505092915050565b5f611ddd8383611d98565b905092915050565b5f602082019050919050565b5f611dfb82611ce7565b611e058185611cf1565b935083602082028501611e1785611d01565b805f5b85811015611e525784840389528151611e338582611dd2565b9450611e3e83611de5565b925060208a01995050600181019050611e1a565b50829750879550505050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611e9681611863565b82525050565b5f611ea78383611e8d565b60208301905092915050565b5f602082019050919050565b5f611ec982611e64565b611ed38185611e6e565b9350611ede83611e7e565b805f5b83811015611f0e578151611ef58882611e9c565b9750611f0083611eb3565b925050600181019050611ee1565b5085935050505092915050565b5f606083015f830151611f305f860182611cd8565b5060208301518482036020860152611f488282611df1565b91505060408301518482036040860152611f628282611ebf565b9150508091505092915050565b5f606082019050611f825f8301866114d5565b611f8f60208301856114d5565b8181036040830152611fa18184611f1b565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fe282611447565b9150611fed83611447565b925082820190508082111561200557612004611fab565b5b92915050565b5f819050602082019050919050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b5f612050825161201a565b80915050919050565b5f82821b905092915050565b5f61206f82611d10565b826120798461200b565b905061208481612045565b925060148210156120c4576120bf7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083601403600802612059565b831692505b5050919050565b5f819050919050565b6120e56120e082611863565b6120cb565b82525050565b5f6120f682846120d4565b60208201915081905092915050565b5f8160601b9050919050565b5f61211b82612105565b9050919050565b5f61212c82612111565b9050919050565b61214461213f826114c4565b612122565b82525050565b5f6121558284612133565b60148201915081905092915050565b5f602083015f8301518482035f86015261217e8282611d2a565b9150508091505092915050565b5f6020820190508181035f8301526121a38184612164565b905092915050565b5f815190506121b981611450565b92915050565b5f602082840312156121d4576121d36112fc565b5b5f6121e1848285016121ab565b91505092915050565b5f82825260208201905092915050565b5f61220482611d10565b61220e81856121ea565b935061221e8185602086016113d1565b612227816113df565b840191505092915050565b5f6080820190506122455f8301876114d5565b61225260208301866114d5565b61225f60408301856115e0565b818103606083015261227181846121fa565b905095945050505050565b5f8151905061228a8161132f565b92915050565b5f602082840312156122a5576122a46112fc565b5b5f6122b28482850161227c565b9150509291505056fea26469706673582212205bf95e90f156361558b716aae55a3349d0a7b05c781551ff8297239ebf5b34a664736f6c634300081c0033 \ No newline at end of file