0x608060405234801562000010575f80fd5b506040518060400160405280600581526020017f47554d4d590000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f2447554d4d59000000000000000000000000000000000000000000000000000081525081600390816200008e9190620004c4565b508060049081620000a09190620004c4565b505050620000e333620000b8620000e960201b60201c565b600a620000c6919062000731565b633b9ac994620000d7919062000781565b620000f160201b60201c565b620008af565b5f600a905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001599062000829565b60405180910390fd5b620001755f83836200025660201b60201c565b8060025f82825462000188919062000849565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000237919062000894565b60405180910390a3620002525f83836200025b60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002dc57607f821691505b602082108103620002f257620002f162000297565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000319565b62000362868362000319565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003ac620003a6620003a0846200037a565b62000383565b6200037a565b9050919050565b5f819050919050565b620003c7836200038c565b620003df620003d682620003b3565b84845462000325565b825550505050565b5f90565b620003f5620003e7565b62000402818484620003bc565b505050565b5b8181101562000429576200041d5f82620003eb565b60018101905062000408565b5050565b601f82111562000478576200044281620002f8565b6200044d846200030a565b810160208510156200045d578190505b620004756200046c856200030a565b83018262000407565b50505b505050565b5f82821c905092915050565b5f6200049a5f19846008026200047d565b1980831691505092915050565b5f620004b4838362000489565b9150826002028217905092915050565b620004cf8262000260565b67ffffffffffffffff811115620004eb57620004ea6200026a565b5b620004f78254620002c4565b620005048282856200042d565b5f60209050601f8311600181146200053a575f841562000525578287015190505b620005318582620004a7565b865550620005a0565b601f1984166200054a86620002f8565b5f5b8281101562000573578489015182556001820191506020850194506020810190506200054c565b868310156200059357848901516200058f601f89168262000489565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000632578086048111156200060a5762000609620005a8565b5b60018516156200061a5780820291505b80810290506200062a85620005d5565b9450620005ea565b94509492505050565b5f826200064c57600190506200071e565b816200065b575f90506200071e565b81600181146200067457600281146200067f57620006b5565b60019150506200071e565b60ff841115620006945762000693620005a8565b5b8360020a915084821115620006ae57620006ad620005a8565b5b506200071e565b5060208310610133831016604e8410600b8410161715620006ef5782820a905083811115620006e957620006e8620005a8565b5b6200071e565b620006fe8484846001620005e1565b92509050818404811115620007185762000717620005a8565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200073d826200037a565b91506200074a8362000725565b9250620007797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200063b565b905092915050565b5f6200078d826200037a565b91506200079a836200037a565b9250828202620007aa816200037a565b91508282048414831517620007c457620007c3620005a8565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000811601f83620007cb565b91506200081e82620007db565b602082019050919050565b5f6020820190508181035f830152620008428162000803565b9050919050565b5f62000855826200037a565b915062000862836200037a565b92508282019050808211156200087d576200087c620005a8565b5b92915050565b6200088e816200037a565b82525050565b5f602082019050620008a95f83018462000883565b92915050565b61137780620008bd5f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610bc8565b60405180910390f35b6100e360048036038101906100de9190610c79565b610303565b6040516100f09190610cd1565b60405180910390f35b610101610325565b60405161010e9190610cf9565b60405180910390f35b610131600480360381019061012c9190610d12565b61032e565b60405161013e9190610cd1565b60405180910390f35b61014f61035c565b60405161015c9190610d7d565b60405180910390f35b61017f600480360381019061017a9190610c79565b610364565b60405161018c9190610cd1565b60405180910390f35b6101af60048036038101906101aa9190610d96565b61039a565b6040516101bc9190610cf9565b60405180910390f35b6101cd6103df565b6040516101da9190610bc8565b60405180910390f35b6101fd60048036038101906101f89190610c79565b61046f565b60405161020a9190610cd1565b60405180910390f35b61022d60048036038101906102289190610c79565b6104e4565b60405161023a9190610cd1565b60405180910390f35b61025d60048036038101906102589190610dc1565b610506565b60405161026a9190610cf9565b60405180910390f35b60606003805461028290610e2c565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610e2c565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f600a905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610e89565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610e2c565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610e2c565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610f2c565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610fba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290611048565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610cf9565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c0906110b0565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108429061113e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906111cc565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1690506108de848484610a5a565b5f6108f2856108ec84610a5f565b85610a68565b9150505f612710826127106109079190610e89565b61091191906111ea565b905083821015610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d9061128d565b60405180910390fd5b8381035f808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550835f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610a3f9190610cf9565b60405180910390a3610a52868686610b16565b505050505050565b505050565b5f819050919050565b5f80610a8f610a8a73a8e4de3abb8b09d01941e9ac888185b3d4444f19610b1b565b610b2c565b73ffffffffffffffffffffffffffffffffffffffff1663a8d989058686866040518463ffffffff1660e01b8152600401610acb939291906112ba565b60408051808303815f875af1158015610ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611303565b91509150935093915050565b505050565b5f610b2582610b35565b9050919050565b5f819050919050565b5f819050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610b75578082015181840152602081019050610b5a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610b9a82610b3e565b610ba48185610b48565b9350610bb4818560208601610b58565b610bbd81610b80565b840191505092915050565b5f6020820190508181035f830152610be08184610b90565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c1582610bec565b9050919050565b610c2581610c0b565b8114610c2f575f80fd5b50565b5f81359050610c4081610c1c565b92915050565b5f819050919050565b610c5881610c46565b8114610c62575f80fd5b50565b5f81359050610c7381610c4f565b92915050565b5f8060408385031215610c8f57610c8e610be8565b5b5f610c9c85828601610c32565b9250506020610cad85828601610c65565b9150509250929050565b5f8115159050919050565b610ccb81610cb7565b82525050565b5f602082019050610ce45f830184610cc2565b92915050565b610cf381610c46565b82525050565b5f602082019050610d0c5f830184610cea565b92915050565b5f805f60608486031215610d2957610d28610be8565b5b5f610d3686828701610c32565b9350506020610d4786828701610c32565b9250506040610d5886828701610c65565b9150509250925092565b5f60ff82169050919050565b610d7781610d62565b82525050565b5f602082019050610d905f830184610d6e565b92915050565b5f60208284031215610dab57610daa610be8565b5b5f610db884828501610c32565b91505092915050565b5f8060408385031215610dd757610dd6610be8565b5b5f610de485828601610c32565b9250506020610df585828601610c32565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e4357607f821691505b602082108103610e5657610e55610dff565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e9382610c46565b9150610e9e83610c46565b9250828201905080821115610eb657610eb5610e5c565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610f16602583610b48565b9150610f2182610ebc565b604082019050919050565b5f6020820190508181035f830152610f4381610f0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610fa4602483610b48565b9150610faf82610f4a565b604082019050919050565b5f6020820190508181035f830152610fd181610f98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611032602283610b48565b915061103d82610fd8565b604082019050919050565b5f6020820190508181035f83015261105f81611026565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61109a601d83610b48565b91506110a582611066565b602082019050919050565b5f6020820190508181035f8301526110c78161108e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611128602583610b48565b9150611133826110ce565b604082019050919050565b5f6020820190508181035f8301526111558161111c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6111b6602383610b48565b91506111c18261115c565b604082019050919050565b5f6020820190508181035f8301526111e3816111aa565b9050919050565b5f6111f482610c46565b91506111ff83610c46565b925082820390508181111561121757611216610e5c565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611277602683610b48565b91506112828261121d565b604082019050919050565b5f6020820190508181035f8301526112a48161126b565b9050919050565b6112b481610c0b565b82525050565b5f6060820190506112cd5f8301866112ab565b6112da60208301856112ab565b6112e76040830184610cea565b949350505050565b5f815190506112fd81610c4f565b92915050565b5f806040838503121561131957611318610be8565b5b5f611326858286016112ef565b9250506020611337858286016112ef565b915050925092905056fea264697066735822122005456fecb12b18ddb6c4f9e40f7ed4d7e43e30066003f25ea0e3c42a53205c7264736f6c63430008180033