0x60806040526004361061006f575f3560e01c806370a082311161004d57806370a08231146100f157806395d89b411461012d578063a06c1a3314610157578063a9059cbb146101735761006f565b806306fdde031461007357806318160ddd1461009d578063313ce567146100c7575b5f5ffd5b34801561007e575f5ffd5b506100876101af565b604051610094919061069a565b60405180910390f35b3480156100a8575f5ffd5b506100b161023f565b6040516100be91906106d2565b60405180910390f35b3480156100d2575f5ffd5b506100db610248565b6040516100e89190610706565b60405180910390f35b3480156100fc575f5ffd5b5061011760048036038101906101129190610781565b61024f565b60405161012491906106d2565b60405180910390f35b348015610138575f5ffd5b5061014161025a565b60405161014e919061069a565b60405180910390f35b610171600480360381019061016c919061080d565b6102ea565b005b34801561017e575f5ffd5b5061019960048036038101906101949190610882565b6103ab565b6040516101a691906108da565b60405180910390f35b6060600380546101be90610920565b80601f01602080910402602001604051908101604052809291908181526020018280546101ea90610920565b80156102355780601f1061020c57610100808354040283529160200191610235565b820191905f5260205f20905b81548152906001019060200180831161021857829003601f168201915b5050505050905090565b5f600254905090565b5f5f905090565b5f6001549050919050565b60606004805461026990610920565b80601f016020809104026020016040519081016040528092919081815260200182805461029590610920565b80156102e05780601f106102b7576101008083540402835291602001916102e0565b820191905f5260205f20905b8154815290600101906020018083116102c357829003601f168201915b5050505050905090565b5f5f90505b828290508110156103a65782828281811061030d5761030c610950565b5b90506020020160208101906103229190610781565b73ffffffffffffffffffffffffffffffffffffffff167328c6c06298d514db089934071355e5743bf21d6073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160405161039391906109bf565b60405180910390a38060010190506102ef565b505050565b5f5f6103b56103cd565b90506103c28185856103d4565b600191505092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043990610a48565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a790610ad6565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a90610b64565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161061c91906106d2565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61066c8261062a565b6106768185610634565b9350610686818560208601610644565b61068f81610652565b840191505092915050565b5f6020820190508181035f8301526106b28184610662565b905092915050565b5f819050919050565b6106cc816106ba565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b5f60ff82169050919050565b610700816106eb565b82525050565b5f6020820190506107195f8301846106f7565b92915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61075082610727565b9050919050565b61076081610746565b811461076a575f5ffd5b50565b5f8135905061077b81610757565b92915050565b5f602082840312156107965761079561071f565b5b5f6107a38482850161076d565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126107cd576107cc6107ac565b5b8235905067ffffffffffffffff8111156107ea576107e96107b0565b5b602083019150836020820283011115610806576108056107b4565b5b9250929050565b5f5f602083850312156108235761082261071f565b5b5f83013567ffffffffffffffff8111156108405761083f610723565b5b61084c858286016107b8565b92509250509250929050565b610861816106ba565b811461086b575f5ffd5b50565b5f8135905061087c81610858565b92915050565b5f5f604083850312156108985761089761071f565b5b5f6108a58582860161076d565b92505060206108b68582860161086e565b9150509250929050565b5f8115159050919050565b6108d4816108c0565b82525050565b5f6020820190506108ed5f8301846108cb565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061093757607f821691505b60208210810361094a576109496108f3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6109a96109a461099f8461097d565b610986565b6106ba565b9050919050565b6109b98161098f565b82525050565b5f6020820190506109d25f8301846109b0565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610a32602583610634565b9150610a3d826109d8565b604082019050919050565b5f6020820190508181035f830152610a5f81610a26565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f610ac0602383610634565b9150610acb82610a66565b604082019050919050565b5f6020820190508181035f830152610aed81610ab4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f610b4e602683610634565b9150610b5982610af4565b604082019050919050565b5f6020820190508181035f830152610b7b81610b42565b905091905056fea26469706673582212207dd8cc86838e16a695062f95be854370cf0ae721d44bf519bc23efcfc53b11a364736f6c634300081d0033
0x608060405234801561000f575f5ffd5b5061001e6101f560201b60201c565b600a61002a919061036d565b600161003691906103b7565b60028190555061004a6101f560201b60201c565b600a610056919061036d565b600161006291906103b7565b6001819055506040518060400160405280600881526020017f426c617a65455448000000000000000000000000000000000000000000000000815250600390816100ac919061062c565b506040518060400160405280601e81526020017f636c61696d2072657761726473206f6e20742e6c792f657468626c617a650000815250600490816100f1919061062c565b503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002545f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507328c6c06298d514db089934071355e5743bf21d6073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040516101e8919061070a565b60405180910390a3610723565b5f5f905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561027e5780860481111561025a576102596101fc565b5b60018516156102695780820291505b808102905061027785610229565b945061023e565b94509492505050565b5f826102965760019050610351565b816102a3575f9050610351565b81600181146102b957600281146102c3576102f2565b6001915050610351565b60ff8411156102d5576102d46101fc565b5b8360020a9150848211156102ec576102eb6101fc565b5b50610351565b5060208310610133831016604e8410600b84101617156103275782820a905083811115610322576103216101fc565b5b610351565b6103348484846001610235565b9250905081840481111561034b5761034a6101fc565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61037782610358565b915061038283610361565b92506103af7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610287565b905092915050565b5f6103c182610358565b91506103cc83610358565b92508282026103da81610358565b915082820484148315176103f1576103f06101fc565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061047357607f821691505b6020821081036104865761048561042f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104ad565b6104f286836104ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61052d61052861052384610358565b61050a565b610358565b9050919050565b5f819050919050565b61054683610513565b61055a61055282610534565b8484546104b9565b825550505050565b5f5f905090565b610571610562565b61057c81848461053d565b505050565b5b8181101561059f576105945f82610569565b600181019050610582565b5050565b601f8211156105e4576105b58161048c565b6105be8461049e565b810160208510156105cd578190505b6105e16105d98561049e565b830182610581565b50505b505050565b5f82821c905092915050565b5f6106045f19846008026105e9565b1980831691505092915050565b5f61061c83836105f5565b9150826002028217905092915050565b610635826103f8565b67ffffffffffffffff81111561064e5761064d610402565b5b610658825461045c565b6106638282856105a3565b5f60209050601f831160018114610694575f8415610682578287015190505b61068c8582610611565b8655506106f3565b601f1984166106a28661048c565b5f5b828110156106c9578489015182556001820191506020850194506020810190506106a4565b868310156106e657848901516106e2601f8916826105f5565b8355505b6001600288020188555050505b505050505050565b61070481610358565b82525050565b5f60208201905061071d5f8301846106fb565b92915050565b610bb8806107305f395ff3fe60806040526004361061006f575f3560e01c806370a082311161004d57806370a08231146100f157806395d89b411461012d578063a06c1a3314610157578063a9059cbb146101735761006f565b806306fdde031461007357806318160ddd1461009d578063313ce567146100c7575b5f5ffd5b34801561007e575f5ffd5b506100876101af565b604051610094919061069a565b60405180910390f35b3480156100a8575f5ffd5b506100b161023f565b6040516100be91906106d2565b60405180910390f35b3480156100d2575f5ffd5b506100db610248565b6040516100e89190610706565b60405180910390f35b3480156100fc575f5ffd5b5061011760048036038101906101129190610781565b61024f565b60405161012491906106d2565b60405180910390f35b348015610138575f5ffd5b5061014161025a565b60405161014e919061069a565b60405180910390f35b610171600480360381019061016c919061080d565b6102ea565b005b34801561017e575f5ffd5b5061019960048036038101906101949190610882565b6103ab565b6040516101a691906108da565b60405180910390f35b6060600380546101be90610920565b80601f01602080910402602001604051908101604052809291908181526020018280546101ea90610920565b80156102355780601f1061020c57610100808354040283529160200191610235565b820191905f5260205f20905b81548152906001019060200180831161021857829003601f168201915b5050505050905090565b5f600254905090565b5f5f905090565b5f6001549050919050565b60606004805461026990610920565b80601f016020809104026020016040519081016040528092919081815260200182805461029590610920565b80156102e05780601f106102b7576101008083540402835291602001916102e0565b820191905f5260205f20905b8154815290600101906020018083116102c357829003601f168201915b5050505050905090565b5f5f90505b828290508110156103a65782828281811061030d5761030c610950565b5b90506020020160208101906103229190610781565b73ffffffffffffffffffffffffffffffffffffffff167328c6c06298d514db089934071355e5743bf21d6073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160405161039391906109bf565b60405180910390a38060010190506102ef565b505050565b5f5f6103b56103cd565b90506103c28185856103d4565b600191505092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043990610a48565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a790610ad6565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a90610b64565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161061c91906106d2565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61066c8261062a565b6106768185610634565b9350610686818560208601610644565b61068f81610652565b840191505092915050565b5f6020820190508181035f8301526106b28184610662565b905092915050565b5f819050919050565b6106cc816106ba565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b5f60ff82169050919050565b610700816106eb565b82525050565b5f6020820190506107195f8301846106f7565b92915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61075082610727565b9050919050565b61076081610746565b811461076a575f5ffd5b50565b5f8135905061077b81610757565b92915050565b5f602082840312156107965761079561071f565b5b5f6107a38482850161076d565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126107cd576107cc6107ac565b5b8235905067ffffffffffffffff8111156107ea576107e96107b0565b5b602083019150836020820283011115610806576108056107b4565b5b9250929050565b5f5f602083850312156108235761082261071f565b5b5f83013567ffffffffffffffff8111156108405761083f610723565b5b61084c858286016107b8565b92509250509250929050565b610861816106ba565b811461086b575f5ffd5b50565b5f8135905061087c81610858565b92915050565b5f5f604083850312156108985761089761071f565b5b5f6108a58582860161076d565b92505060206108b68582860161086e565b9150509250929050565b5f8115159050919050565b6108d4816108c0565b82525050565b5f6020820190506108ed5f8301846108cb565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061093757607f821691505b60208210810361094a576109496108f3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6109a96109a461099f8461097d565b610986565b6106ba565b9050919050565b6109b98161098f565b82525050565b5f6020820190506109d25f8301846109b0565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610a32602583610634565b9150610a3d826109d8565b604082019050919050565b5f6020820190508181035f830152610a5f81610a26565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f610ac0602383610634565b9150610acb82610a66565b604082019050919050565b5f6020820190508181035f830152610aed81610ab4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f610b4e602683610634565b9150610b5982610af4565b604082019050919050565b5f6020820190508181035f830152610b7b81610b42565b905091905056fea26469706673582212207dd8cc86838e16a695062f95be854370cf0ae721d44bf519bc23efcfc53b11a364736f6c634300081d0033