0x6080604052600436106100dc575f3560e01c80638a8c523c1161007e5780639a6291af116100585780639a6291af14610286578063a9059cbb146102ae578063bd3733fe146102ea578063dd62ed3e14610314576100dc565b80638a8c523c146102285780638da5cb5b1461023257806395d89b411461025c576100dc565b806323b872dd116100ba57806323b872dd14610170578063313ce567146101ac57806370a08231146101d6578063715018a614610212576100dc565b806306fdde03146100e0578063095ea7b31461010a57806318160ddd14610146575b5f5ffd5b3480156100eb575f5ffd5b506100f4610350565b6040516101019190611231565b60405180910390f35b348015610115575f5ffd5b50610130600480360381019061012b91906112e2565b61038d565b60405161013d919061133a565b60405180910390f35b348015610151575f5ffd5b5061015a6103a3565b6040516101679190611362565b60405180910390f35b34801561017b575f5ffd5b506101966004803603810190610191919061137b565b6103ac565b6040516101a3919061133a565b60405180910390f35b3480156101b7575f5ffd5b506101c0610458565b6040516101cd91906113e6565b60405180910390f35b3480156101e1575f5ffd5b506101fc60048036038101906101f791906113ff565b61046d565b6040516102099190611362565b60405180910390f35b34801561021d575f5ffd5b506102266104b3565b005b6102306105e3565b005b34801561023d575f5ffd5b50610246610a2b565b6040516102539190611439565b60405180910390f35b348015610267575f5ffd5b50610270610a52565b60405161027d9190611231565b60405180910390f35b348015610291575f5ffd5b506102ac60048036038101906102a791906112e2565b610a8f565b005b3480156102b9575f5ffd5b506102d460048036038101906102cf91906112e2565b610a9d565b6040516102e1919061133a565b60405180910390f35b3480156102f5575f5ffd5b506102fe610ab3565b60405161030b9190611439565b60405180910390f35b34801561031f575f5ffd5b5061033a60048036038101906103359190611452565b610ad8565b6040516103479190611362565b60405180910390f35b60606040518060400160405280600c81526020017f5472656e64456467652041490000000000000000000000000000000000000000815250905090565b5f610399338484610b5a565b6001905092915050565b5f600154905090565b5f6103b8848484610d1d565b61044d84336104488560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc790919063ffffffff16565b610b5a565b600190509392505050565b5f5f60149054906101000a900460ff16905090565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166104d2610a2b565b73ffffffffffffffffffffffffffffffffffffffff1614610528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051f906114da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16610602610a2b565b73ffffffffffffffffffffffffffffffffffffffff1614610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f906114da565b60405180910390fd5b600360149054906101000a900460ff1615610671575f5ffd5b61069f3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610b5a565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610709573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072d919061150c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d7919061150c565b6040518363ffffffff1660e01b81526004016107f4929190611537565b6020604051808303815f875af1158015610810573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610834919061150c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f42905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306108bf3061046d565b5f5f6108c9610a2b565b886040518863ffffffff1660e01b81526004016108eb969594939291906115a0565b60606040518083038185885af1158015610907573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061092c9190611613565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016109cc929190611663565b6020604051808303815f875af11580156109e8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0c91906116b4565b506001600360146101000a81548160ff02191690831515021790555050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5452454e44000000000000000000000000000000000000000000000000000000815250905090565b610a998282611024565b5050565b5f610aa9338484610d1d565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf9061174f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d906117dd565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d109190611362565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d829061186b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df0906118f9565b60405180910390fd5b5f8111610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290611987565b60405180910390fd5b610e8b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc790919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610f1c8160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110ed90919063ffffffff16565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fba9190611362565b60405180910390a3505050565b5f8282111561100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906119ef565b60405180910390fd5b5f82846110189190611a3a565b90508091505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036110e9575f81101561109a576110956007548261114a90919063ffffffff16565b6110a7565b5f816110a69190611a6d565b5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5050565b5f5f82846110fb9190611a6d565b905083811015611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790611aea565b60405180910390fd5b8091505092915050565b5f5f830361115a575f90506111bb565b5f82846111679190611b08565b90508284826111769190611b76565b146111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90611c16565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611203826111c1565b61120d81856111cb565b935061121d8185602086016111db565b611226816111e9565b840191505092915050565b5f6020820190508181035f83015261124981846111f9565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61127e82611255565b9050919050565b61128e81611274565b8114611298575f5ffd5b50565b5f813590506112a981611285565b92915050565b5f819050919050565b6112c1816112af565b81146112cb575f5ffd5b50565b5f813590506112dc816112b8565b92915050565b5f5f604083850312156112f8576112f7611251565b5b5f6113058582860161129b565b9250506020611316858286016112ce565b9150509250929050565b5f8115159050919050565b61133481611320565b82525050565b5f60208201905061134d5f83018461132b565b92915050565b61135c816112af565b82525050565b5f6020820190506113755f830184611353565b92915050565b5f5f5f6060848603121561139257611391611251565b5b5f61139f8682870161129b565b93505060206113b08682870161129b565b92505060406113c1868287016112ce565b9150509250925092565b5f60ff82169050919050565b6113e0816113cb565b82525050565b5f6020820190506113f95f8301846113d7565b92915050565b5f6020828403121561141457611413611251565b5b5f6114218482850161129b565b91505092915050565b61143381611274565b82525050565b5f60208201905061144c5f83018461142a565b92915050565b5f5f6040838503121561146857611467611251565b5b5f6114758582860161129b565b92505060206114868582860161129b565b9150509250929050565b7f4e6f7420616e206f776e657200000000000000000000000000000000000000005f82015250565b5f6114c4600c836111cb565b91506114cf82611490565b602082019050919050565b5f6020820190508181035f8301526114f1816114b8565b9050919050565b5f8151905061150681611285565b92915050565b5f6020828403121561152157611520611251565b5b5f61152e848285016114f8565b91505092915050565b5f60408201905061154a5f83018561142a565b611557602083018461142a565b9392505050565b5f819050919050565b5f819050919050565b5f61158a6115856115808461155e565b611567565b6112af565b9050919050565b61159a81611570565b82525050565b5f60c0820190506115b35f83018961142a565b6115c06020830188611353565b6115cd6040830187611591565b6115da6060830186611591565b6115e7608083018561142a565b6115f460a0830184611353565b979650505050505050565b5f8151905061160d816112b8565b92915050565b5f5f5f6060848603121561162a57611629611251565b5b5f611637868287016115ff565b9350506020611648868287016115ff565b9250506040611659868287016115ff565b9150509250925092565b5f6040820190506116765f83018561142a565b6116836020830184611353565b9392505050565b61169381611320565b811461169d575f5ffd5b50565b5f815190506116ae8161168a565b92915050565b5f602082840312156116c9576116c8611251565b5b5f6116d6848285016116a0565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6117396024836111cb565b9150611744826116df565b604082019050919050565b5f6020820190508181035f8301526117668161172d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117c76022836111cb565b91506117d28261176d565b604082019050919050565b5f6020820190508181035f8301526117f4816117bb565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f20616464725f8201527f6573732100000000000000000000000000000000000000000000000000000000602082015250565b5f6118556024836111cb565b9150611860826117fb565b604082019050919050565b5f6020820190508181035f83015261188281611849565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373210000000000000000000000000000000000000000000000000000602082015250565b5f6118e36026836111cb565b91506118ee82611889565b604082019050919050565b5f6020820190508181035f830152611910816118d7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2100000000000000000000000000000000000000000000602082015250565b5f611971602a836111cb565b915061197c82611917565b604082019050919050565b5f6020820190508181035f83015261199e81611965565b9050919050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f772e5f82015250565b5f6119d96020836111cb565b91506119e4826119a5565b602082019050919050565b5f6020820190508181035f830152611a06816119cd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a44826112af565b9150611a4f836112af565b9250828203905081811115611a6757611a66611a0d565b5b92915050565b5f611a77826112af565b9150611a82836112af565b9250828201905080821115611a9a57611a99611a0d565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f772e0000005f82015250565b5f611ad4601d836111cb565b9150611adf82611aa0565b602082019050919050565b5f6020820190508181035f830152611b0181611ac8565b9050919050565b5f611b12826112af565b9150611b1d836112af565b9250828202611b2b816112af565b91508282048414831517611b4257611b41611a0d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611b80826112af565b9150611b8b836112af565b925082611b9b57611b9a611b49565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f772e0000000000000000000000000000000000000000000000000000000000602082015250565b5f611c006023836111cb565b9150611c0b82611ba6565b604082019050919050565b5f6020820190508181035f830152611c2d81611bf4565b905091905056fea2646970667358221220318c478a29189110daaf7b620b38afe48912117c3bd707abfbeadff34d9db2b364736f6c634300081b0033
0x608060405260095f60146101000a81548160ff021916908360ff1602179055505f60149054906101000a900460ff16600a61003a91906103db565b6201d4c06100489190610425565b600155737a250d5630b4cf539739df2c5dacb4c659f2488d60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600360146101000a81548160ff0219169083151502179055505f60045560016007555f600855734ebc5685c735ce4527d7017883f4dfeb3073e3cd600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610125575f5ffd5b50335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516102199190610475565b60405180910390a360015460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061048e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156102ec578086048111156102c8576102c761026a565b5b60018516156102d75780820291505b80810290506102e585610297565b94506102ac565b94509492505050565b5f8261030457600190506103bf565b81610311575f90506103bf565b8160018114610327576002811461033157610360565b60019150506103bf565b60ff8411156103435761034261026a565b5b8360020a91508482111561035a5761035961026a565b5b506103bf565b5060208310610133831016604e8410600b84101617156103955782820a9050838111156103905761038f61026a565b5b6103bf565b6103a284848460016102a3565b925090508184048111156103b9576103b861026a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6103e5826103c6565b91506103f0836103cf565b925061041d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846102f5565b905092915050565b5f61042f826103c6565b915061043a836103c6565b9250828202610448816103c6565b9150828204841483151761045f5761045e61026a565b5b5092915050565b61046f816103c6565b82525050565b5f6020820190506104885f830184610466565b92915050565b611c6a8061049b5f395ff3fe6080604052600436106100dc575f3560e01c80638a8c523c1161007e5780639a6291af116100585780639a6291af14610286578063a9059cbb146102ae578063bd3733fe146102ea578063dd62ed3e14610314576100dc565b80638a8c523c146102285780638da5cb5b1461023257806395d89b411461025c576100dc565b806323b872dd116100ba57806323b872dd14610170578063313ce567146101ac57806370a08231146101d6578063715018a614610212576100dc565b806306fdde03146100e0578063095ea7b31461010a57806318160ddd14610146575b5f5ffd5b3480156100eb575f5ffd5b506100f4610350565b6040516101019190611231565b60405180910390f35b348015610115575f5ffd5b50610130600480360381019061012b91906112e2565b61038d565b60405161013d919061133a565b60405180910390f35b348015610151575f5ffd5b5061015a6103a3565b6040516101679190611362565b60405180910390f35b34801561017b575f5ffd5b506101966004803603810190610191919061137b565b6103ac565b6040516101a3919061133a565b60405180910390f35b3480156101b7575f5ffd5b506101c0610458565b6040516101cd91906113e6565b60405180910390f35b3480156101e1575f5ffd5b506101fc60048036038101906101f791906113ff565b61046d565b6040516102099190611362565b60405180910390f35b34801561021d575f5ffd5b506102266104b3565b005b6102306105e3565b005b34801561023d575f5ffd5b50610246610a2b565b6040516102539190611439565b60405180910390f35b348015610267575f5ffd5b50610270610a52565b60405161027d9190611231565b60405180910390f35b348015610291575f5ffd5b506102ac60048036038101906102a791906112e2565b610a8f565b005b3480156102b9575f5ffd5b506102d460048036038101906102cf91906112e2565b610a9d565b6040516102e1919061133a565b60405180910390f35b3480156102f5575f5ffd5b506102fe610ab3565b60405161030b9190611439565b60405180910390f35b34801561031f575f5ffd5b5061033a60048036038101906103359190611452565b610ad8565b6040516103479190611362565b60405180910390f35b60606040518060400160405280600c81526020017f5472656e64456467652041490000000000000000000000000000000000000000815250905090565b5f610399338484610b5a565b6001905092915050565b5f600154905090565b5f6103b8848484610d1d565b61044d84336104488560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc790919063ffffffff16565b610b5a565b600190509392505050565b5f5f60149054906101000a900460ff16905090565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166104d2610a2b565b73ffffffffffffffffffffffffffffffffffffffff1614610528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051f906114da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16610602610a2b565b73ffffffffffffffffffffffffffffffffffffffff1614610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f906114da565b60405180910390fd5b600360149054906101000a900460ff1615610671575f5ffd5b61069f3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610b5a565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610709573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072d919061150c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d7919061150c565b6040518363ffffffff1660e01b81526004016107f4929190611537565b6020604051808303815f875af1158015610810573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610834919061150c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f42905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306108bf3061046d565b5f5f6108c9610a2b565b886040518863ffffffff1660e01b81526004016108eb969594939291906115a0565b60606040518083038185885af1158015610907573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061092c9190611613565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016109cc929190611663565b6020604051808303815f875af11580156109e8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0c91906116b4565b506001600360146101000a81548160ff02191690831515021790555050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5452454e44000000000000000000000000000000000000000000000000000000815250905090565b610a998282611024565b5050565b5f610aa9338484610d1d565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf9061174f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d906117dd565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d109190611362565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d829061186b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df0906118f9565b60405180910390fd5b5f8111610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290611987565b60405180910390fd5b610e8b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc790919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610f1c8160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110ed90919063ffffffff16565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fba9190611362565b60405180910390a3505050565b5f8282111561100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906119ef565b60405180910390fd5b5f82846110189190611a3a565b90508091505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036110e9575f81101561109a576110956007548261114a90919063ffffffff16565b6110a7565b5f816110a69190611a6d565b5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5050565b5f5f82846110fb9190611a6d565b905083811015611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790611aea565b60405180910390fd5b8091505092915050565b5f5f830361115a575f90506111bb565b5f82846111679190611b08565b90508284826111769190611b76565b146111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90611c16565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611203826111c1565b61120d81856111cb565b935061121d8185602086016111db565b611226816111e9565b840191505092915050565b5f6020820190508181035f83015261124981846111f9565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61127e82611255565b9050919050565b61128e81611274565b8114611298575f5ffd5b50565b5f813590506112a981611285565b92915050565b5f819050919050565b6112c1816112af565b81146112cb575f5ffd5b50565b5f813590506112dc816112b8565b92915050565b5f5f604083850312156112f8576112f7611251565b5b5f6113058582860161129b565b9250506020611316858286016112ce565b9150509250929050565b5f8115159050919050565b61133481611320565b82525050565b5f60208201905061134d5f83018461132b565b92915050565b61135c816112af565b82525050565b5f6020820190506113755f830184611353565b92915050565b5f5f5f6060848603121561139257611391611251565b5b5f61139f8682870161129b565b93505060206113b08682870161129b565b92505060406113c1868287016112ce565b9150509250925092565b5f60ff82169050919050565b6113e0816113cb565b82525050565b5f6020820190506113f95f8301846113d7565b92915050565b5f6020828403121561141457611413611251565b5b5f6114218482850161129b565b91505092915050565b61143381611274565b82525050565b5f60208201905061144c5f83018461142a565b92915050565b5f5f6040838503121561146857611467611251565b5b5f6114758582860161129b565b92505060206114868582860161129b565b9150509250929050565b7f4e6f7420616e206f776e657200000000000000000000000000000000000000005f82015250565b5f6114c4600c836111cb565b91506114cf82611490565b602082019050919050565b5f6020820190508181035f8301526114f1816114b8565b9050919050565b5f8151905061150681611285565b92915050565b5f6020828403121561152157611520611251565b5b5f61152e848285016114f8565b91505092915050565b5f60408201905061154a5f83018561142a565b611557602083018461142a565b9392505050565b5f819050919050565b5f819050919050565b5f61158a6115856115808461155e565b611567565b6112af565b9050919050565b61159a81611570565b82525050565b5f60c0820190506115b35f83018961142a565b6115c06020830188611353565b6115cd6040830187611591565b6115da6060830186611591565b6115e7608083018561142a565b6115f460a0830184611353565b979650505050505050565b5f8151905061160d816112b8565b92915050565b5f5f5f6060848603121561162a57611629611251565b5b5f611637868287016115ff565b9350506020611648868287016115ff565b9250506040611659868287016115ff565b9150509250925092565b5f6040820190506116765f83018561142a565b6116836020830184611353565b9392505050565b61169381611320565b811461169d575f5ffd5b50565b5f815190506116ae8161168a565b92915050565b5f602082840312156116c9576116c8611251565b5b5f6116d6848285016116a0565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6117396024836111cb565b9150611744826116df565b604082019050919050565b5f6020820190508181035f8301526117668161172d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117c76022836111cb565b91506117d28261176d565b604082019050919050565b5f6020820190508181035f8301526117f4816117bb565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f20616464725f8201527f6573732100000000000000000000000000000000000000000000000000000000602082015250565b5f6118556024836111cb565b9150611860826117fb565b604082019050919050565b5f6020820190508181035f83015261188281611849565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373210000000000000000000000000000000000000000000000000000602082015250565b5f6118e36026836111cb565b91506118ee82611889565b604082019050919050565b5f6020820190508181035f830152611910816118d7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2100000000000000000000000000000000000000000000602082015250565b5f611971602a836111cb565b915061197c82611917565b604082019050919050565b5f6020820190508181035f83015261199e81611965565b9050919050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f772e5f82015250565b5f6119d96020836111cb565b91506119e4826119a5565b602082019050919050565b5f6020820190508181035f830152611a06816119cd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a44826112af565b9150611a4f836112af565b9250828203905081811115611a6757611a66611a0d565b5b92915050565b5f611a77826112af565b9150611a82836112af565b9250828201905080821115611a9a57611a99611a0d565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f772e0000005f82015250565b5f611ad4601d836111cb565b9150611adf82611aa0565b602082019050919050565b5f6020820190508181035f830152611b0181611ac8565b9050919050565b5f611b12826112af565b9150611b1d836112af565b9250828202611b2b816112af565b91508282048414831517611b4257611b41611a0d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611b80826112af565b9150611b8b836112af565b925082611b9b57611b9a611b49565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f772e0000000000000000000000000000000000000000000000000000000000602082015250565b5f611c006023836111cb565b9150611c0b82611ba6565b604082019050919050565b5f6020820190508181035f830152611c2d81611bf4565b905091905056fea2646970667358221220318c478a29189110daaf7b620b38afe48912117c3bd707abfbeadff34d9db2b364736f6c634300081b0033