0x60806040523480156200001157600080fd5b506040518060400160405280600f81526020017f43727970746f467269656e6473554100000000000000000000000000000000008152506000908162000058919062000377565b506040518060400160405280600481526020017f4346554100000000000000000000000000000000000000000000000000000000815250600190816200009f919062000377565b50600060028190555061012c6003819055506000600460006101000a81548160ff021916908315150217905550604051806080016040528060428152602001620011666042913960069081620000f6919062000377565b506200045e565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200017f57607f821691505b60208210810362000195576200019462000137565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001c0565b6200020b8683620001c0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000258620002526200024c8462000223565b6200022d565b62000223565b9050919050565b6000819050919050565b620002748362000237565b6200028c62000283826200025f565b848454620001cd565b825550505050565b600090565b620002a362000294565b620002b081848462000269565b505050565b5b81811015620002d857620002cc60008262000299565b600181019050620002b6565b5050565b601f8211156200032757620002f1816200019b565b620002fc84620001b0565b810160208510156200030c578190505b620003246200031b85620001b0565b830182620002b5565b50505b505050565b600082821c905092915050565b60006200034c600019846008026200032c565b1980831691505092915050565b600062000367838362000339565b9150826002028217905092915050565b6200038282620000fd565b67ffffffffffffffff8111156200039e576200039d62000108565b5b620003aa825462000166565b620003b7828285620002dc565b600060209050601f831160018114620003ef5760008415620003da578287015190505b620003e6858262000359565b86555062000456565b601f198416620003ff866200019b565b60005b82811015620004295784890151825560018201915060208501945060208101905062000402565b8683101562000449578489015162000445601f89168262000339565b8355505b6001600288020188555050505b505050505050565b610cf8806200046e6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806395d89b411161005b57806395d89b4114610117578063a323205e14610135578063b2b93b7314610153578063d8b66ae11461017157610088565b806306fdde031461008d57806318160ddd146100ab5780632154dc39146100c957806370a08231146100e7575b600080fd5b61009561018d565b6040516100a29190610636565b60405180910390f35b6100b361021b565b6040516100c09190610671565b60405180910390f35b6100d1610221565b6040516100de9190610671565b60405180910390f35b61010160048036038101906100fc91906106fe565b610227565b60405161010e9190610671565b60405180910390f35b61011f61023f565b60405161012c9190610636565b60405180910390f35b61013d6102cd565b60405161014a9190610636565b60405180910390f35b61015b61035b565b6040516101689190610746565b60405180910390f35b61018b60048036038101906101869190610998565b61036e565b005b6000805461019a90610a3f565b80601f01602080910402602001604051908101604052809291908181526020018280546101c690610a3f565b80156102135780601f106101e857610100808354040283529160200191610213565b820191906000526020600020905b8154815290600101906020018083116101f657829003601f168201915b505050505081565b60025481565b60035481565b60056020528060005260406000206000915090505481565b6001805461024c90610a3f565b80601f016020809104026020016040519081016040528092919081815260200182805461027890610a3f565b80156102c55780601f1061029a576101008083540402835291602001916102c5565b820191906000526020600020905b8154815290600101906020018083116102a857829003601f168201915b505050505081565b600680546102da90610a3f565b80601f016020809104026020016040519081016040528092919081815260200182805461030690610a3f565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b505050505081565b600460009054906101000a900460ff1681565b80518251146103b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a990610abc565b60405180910390fd5b60005b82518110156105a15760008382815181106103d3576103d2610adc565b5b6020026020010151905060008383815181106103f2576103f1610adc565b5b60200260200101519050600354811115610441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043890610b57565b60405180910390fd5b600460009054906101000a900460ff1615610491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048890610bc3565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104e09190610c12565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105459190610671565b60405180910390a3806003600082825461055f9190610c46565b9250508190555060006003540361058c576001600460006101000a81548160ff0219169083151502179055505b5050808061059990610c7a565b9150506103b5565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156105e05780820151818401526020810190506105c5565b60008484015250505050565b6000601f19601f8301169050919050565b6000610608826105a6565b61061281856105b1565b93506106228185602086016105c2565b61062b816105ec565b840191505092915050565b6000602082019050818103600083015261065081846105fd565b905092915050565b6000819050919050565b61066b81610658565b82525050565b60006020820190506106866000830184610662565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106cb826106a0565b9050919050565b6106db816106c0565b81146106e657600080fd5b50565b6000813590506106f8816106d2565b92915050565b60006020828403121561071457610713610696565b5b6000610722848285016106e9565b91505092915050565b60008115159050919050565b6107408161072b565b82525050565b600060208201905061075b6000830184610737565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61079e826105ec565b810181811067ffffffffffffffff821117156107bd576107bc610766565b5b80604052505050565b60006107d061068c565b90506107dc8282610795565b919050565b600067ffffffffffffffff8211156107fc576107fb610766565b5b602082029050602081019050919050565b600080fd5b6000610825610820846107e1565b6107c6565b905080838252602082019050602084028301858111156108485761084761080d565b5b835b81811015610871578061085d88826106e9565b84526020840193505060208101905061084a565b5050509392505050565b600082601f8301126108905761088f610761565b5b81356108a0848260208601610812565b91505092915050565b600067ffffffffffffffff8211156108c4576108c3610766565b5b602082029050602081019050919050565b6108de81610658565b81146108e957600080fd5b50565b6000813590506108fb816108d5565b92915050565b600061091461090f846108a9565b6107c6565b905080838252602082019050602084028301858111156109375761093661080d565b5b835b81811015610960578061094c88826108ec565b845260208401935050602081019050610939565b5050509392505050565b600082601f83011261097f5761097e610761565b5b813561098f848260208601610901565b91505092915050565b600080604083850312156109af576109ae610696565b5b600083013567ffffffffffffffff8111156109cd576109cc61069b565b5b6109d98582860161087b565b925050602083013567ffffffffffffffff8111156109fa576109f961069b565b5b610a068582860161096a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610a5757607f821691505b602082108103610a6a57610a69610a10565b5b50919050565b7f496e76616c696420696e70757400000000000000000000000000000000000000600082015250565b6000610aa6600d836105b1565b9150610ab182610a70565b602082019050919050565b60006020820190508181036000830152610ad581610a99565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45786365656473206d6178696d756d206d696e7461626c650000000000000000600082015250565b6000610b416018836105b1565b9150610b4c82610b0b565b602082019050919050565b60006020820190508181036000830152610b7081610b34565b9050919050565b7f4d696e74696e6720697320636c6f736564000000000000000000000000000000600082015250565b6000610bad6011836105b1565b9150610bb882610b77565b602082019050919050565b60006020820190508181036000830152610bdc81610ba0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c1d82610658565b9150610c2883610658565b9250828201905080821115610c4057610c3f610be3565b5b92915050565b6000610c5182610658565b9150610c5c83610658565b9250828203905081811115610c7457610c73610be3565b5b92915050565b6000610c8582610658565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610cb757610cb6610be3565b5b60018201905091905056fea2646970667358221220247abf14eb577686a9933222239de6881635745e1a3742f6db441ea994d7d3d964736f6c6343000812003368747470733a2f2f77686974656269742e636f6d2f726566657272616c2f31353766313562392d303233612d343631622d626330392d396237656163366231343430