0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d7146102a8578063a9059cbb146102d8578063c0d611e514610308578063dd62ed3e14610326578063fef63a92146103565761010b565b8063715018a6146102465780638f84aa091461025057806395d89b411461026e5780639dc29fac1461028c5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca5780633960d944146101fa57806370a08231146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610386565b60405161012591906115ce565b60405180910390f35b610148600480360381019061014391906113f2565b610418565b60405161015591906115b3565b60405180910390f35b610166610436565b60405161017391906116d0565b60405180910390f35b610196600480360381019061019191906113a3565b610440565b6040516101a391906115b3565b60405180910390f35b6101b4610538565b6040516101c191906116eb565b60405180910390f35b6101e460048036038101906101df91906113f2565b61054f565b6040516101f191906115b3565b60405180910390f35b610214600480360381019061020f919061133e565b6105fb565b005b610230600480360381019061022b919061133e565b6107a2565b60405161023d91906116d0565b60405180910390f35b61024e6107eb565b005b61025861093f565b6040516102659190611598565b60405180910390f35b610276610969565b60405161028391906115ce565b60405180910390f35b6102a660048036038101906102a191906113f2565b6109fb565b005b6102c260048036038101906102bd91906113f2565b610a09565b6040516102cf91906115b3565b60405180910390f35b6102f260048036038101906102ed91906113f2565b610af4565b6040516102ff91906115b3565b60405180910390f35b610310610b12565b60405161031d91906116d0565b60405180910390f35b610340600480360381019061033b9190611367565b610b3a565b60405161034d91906116d0565b60405180910390f35b610370600480360381019061036b919061133e565b610bc1565b60405161037d91906115b3565b60405180910390f35b60606006805461039590611800565b80601f01602080910402602001604051908101604052809291908181526020018280546103c190611800565b801561040e5780601f106103e35761010080835404028352916020019161040e565b820191906000526020600020905b8154815290600101906020018083116103f157829003601f168201915b5050505050905090565b600061042c610425610c17565b8484610c1f565b6001905092915050565b6000600554905090565b600061044d848484610dea565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610498610c17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050f90611610565b60405180910390fd5b61052c85610524610c17565b858403610c1f565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b60006105f161055c610c17565b84846004600061056a610c17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105ec9190611722565b610c1f565b6001905092915050565b610603610c17565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790611630565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610746576001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061079f565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107f3610c17565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790611630565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461097890611800565b80601f01602080910402602001604051908101604052809291908181526020018280546109a490611800565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050905090565b610a058282611114565b5050565b60008060046000610a18610c17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90611690565b60405180910390fd5b610ae9610ae0610c17565b85858403610c1f565b600191505092915050565b6000610b08610b01610c17565b8484610dea565b6001905092915050565b60007f0000000000000000000000000000000000000000000000004563918244f40000905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690611670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf6906115f0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ddd91906116d0565b60405180910390a3505050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e8b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f0057600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690611650565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790611650565b60405180910390fd5b610f7b83838361130a565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990611650565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110979190611722565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110fb91906116d0565b60405180910390a361110e84848461130f565b50505050565b61111c610c17565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090611630565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906116b0565b60405180910390fd5b6112256000838361130a565b80600560008282546112379190611722565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461128d9190611722565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112f291906116d0565b60405180910390a36113066000838361130f565b5050565b505050565b505050565b60008135905061132381611a32565b92915050565b60008135905061133881611a49565b92915050565b60006020828403121561135057600080fd5b600061135e84828501611314565b91505092915050565b6000806040838503121561137a57600080fd5b600061138885828601611314565b925050602061139985828601611314565b9150509250929050565b6000806000606084860312156113b857600080fd5b60006113c686828701611314565b93505060206113d786828701611314565b92505060406113e886828701611329565b9150509250925092565b6000806040838503121561140557600080fd5b600061141385828601611314565b925050602061142485828601611329565b9150509250929050565b61143781611778565b82525050565b6114468161178a565b82525050565b600061145782611706565b6114618185611711565b93506114718185602086016117cd565b61147a81611890565b840191505092915050565b6000611492602283611711565b915061149d826118a1565b604082019050919050565b60006114b5602883611711565b91506114c0826118f0565b604082019050919050565b60006114d8602083611711565b91506114e38261193f565b602082019050919050565b60006114fb600083611711565b915061150682611968565b600082019050919050565b600061151e602483611711565b91506115298261196b565b604082019050919050565b6000611541602583611711565b915061154c826119ba565b604082019050919050565b6000611564601f83611711565b915061156f82611a09565b602082019050919050565b611583816117b6565b82525050565b611592816117c0565b82525050565b60006020820190506115ad600083018461142e565b92915050565b60006020820190506115c8600083018461143d565b92915050565b600060208201905081810360008301526115e8818461144c565b905092915050565b6000602082019050818103600083015261160981611485565b9050919050565b60006020820190508181036000830152611629816114a8565b9050919050565b60006020820190508181036000830152611649816114cb565b9050919050565b60006020820190508181036000830152611669816114ee565b9050919050565b6000602082019050818103600083015261168981611511565b9050919050565b600060208201905081810360008301526116a981611534565b9050919050565b600060208201905081810360008301526116c981611557565b9050919050565b60006020820190506116e5600083018461157a565b92915050565b60006020820190506117006000830184611589565b92915050565b600081519050919050565b600082825260208201905092915050565b600061172d826117b6565b9150611738836117b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561176d5761176c611832565b5b828201905092915050565b600061178382611796565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156117eb5780820151818401526020810190506117d0565b838111156117fa576000848401525b50505050565b6000600282049050600182168061181857607f821691505b6020821081141561182c5761182b611861565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611a3b81611778565b8114611a4657600080fd5b50565b611a52816117b6565b8114611a5d57600080fd5b5056fea2646970667358221220cd490444f051ef0cfaf9a649f03464419683d30c88ff95eb821dcbf5c03405bd64736f6c63430008010033
0x60a06040523480156200001157600080fd5b5060405162002247380380620022478339818101604052810190620000379190620004b9565b6040518060400160405280600981526020017f56616c75654261736500000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f564241534500000000000000000000000000000000000000000000000000000081525060096000620000b76200024f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508260069080519060200190620001ae929190620003db565b508160079080519060200190620001c7929190620003db565b5080600860006101000a81548160ff021916908360ff160217905550505050818110156200022c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000223906200056e565b60405180910390fd5b6200023e83836200025760201b60201c565b806080818152505050505062000795565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c19062000590565b60405180910390fd5b620002de60008383620003d160201b60201c565b8060056000828254620002f29190620005e0565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200034a9190620005e0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003b19190620005b2565b60405180910390a3620003cd60008383620003d660201b60201c565b5050565b505050565b505050565b828054620003e9906200067b565b90600052602060002090601f0160209004810192826200040d576000855562000459565b82601f106200042857805160ff191683800117855562000459565b8280016001018555821562000459579182015b82811115620004585782518255916020019190600101906200043b565b5b5090506200046891906200046c565b5090565b5b80821115620004875760008160009055506001016200046d565b5090565b6000815190506200049c8162000761565b92915050565b600081519050620004b3816200077b565b92915050565b600080600060608486031215620004cf57600080fd5b6000620004df868287016200048b565b9350506020620004f286828701620004a2565b92505060406200050586828701620004a2565b9150509250925092565b60006200051e602083620005cf565b91506200052b826200070f565b602082019050919050565b600062000545601f83620005cf565b9150620005528262000738565b602082019050919050565b620005688162000671565b82525050565b6000602082019050818103600083015262000589816200050f565b9050919050565b60006020820190508181036000830152620005ab8162000536565b9050919050565b6000602082019050620005c960008301846200055d565b92915050565b600082825260208201905092915050565b6000620005ed8262000671565b9150620005fa8362000671565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006325762000631620006b1565b5b828201905092915050565b60006200064a8262000651565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060028204905060018216806200069457607f821691505b60208210811415620006ab57620006aa620006e0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f5072656d696e7420737570706c79206578636565647320636170206c696d6974600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6200076c816200063d565b81146200077857600080fd5b50565b620007868162000671565b81146200079257600080fd5b50565b608051611a96620007b16000396000610b160152611a966000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d7146102a8578063a9059cbb146102d8578063c0d611e514610308578063dd62ed3e14610326578063fef63a92146103565761010b565b8063715018a6146102465780638f84aa091461025057806395d89b411461026e5780639dc29fac1461028c5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca5780633960d944146101fa57806370a08231146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610386565b60405161012591906115ce565b60405180910390f35b610148600480360381019061014391906113f2565b610418565b60405161015591906115b3565b60405180910390f35b610166610436565b60405161017391906116d0565b60405180910390f35b610196600480360381019061019191906113a3565b610440565b6040516101a391906115b3565b60405180910390f35b6101b4610538565b6040516101c191906116eb565b60405180910390f35b6101e460048036038101906101df91906113f2565b61054f565b6040516101f191906115b3565b60405180910390f35b610214600480360381019061020f919061133e565b6105fb565b005b610230600480360381019061022b919061133e565b6107a2565b60405161023d91906116d0565b60405180910390f35b61024e6107eb565b005b61025861093f565b6040516102659190611598565b60405180910390f35b610276610969565b60405161028391906115ce565b60405180910390f35b6102a660048036038101906102a191906113f2565b6109fb565b005b6102c260048036038101906102bd91906113f2565b610a09565b6040516102cf91906115b3565b60405180910390f35b6102f260048036038101906102ed91906113f2565b610af4565b6040516102ff91906115b3565b60405180910390f35b610310610b12565b60405161031d91906116d0565b60405180910390f35b610340600480360381019061033b9190611367565b610b3a565b60405161034d91906116d0565b60405180910390f35b610370600480360381019061036b919061133e565b610bc1565b60405161037d91906115b3565b60405180910390f35b60606006805461039590611800565b80601f01602080910402602001604051908101604052809291908181526020018280546103c190611800565b801561040e5780601f106103e35761010080835404028352916020019161040e565b820191906000526020600020905b8154815290600101906020018083116103f157829003601f168201915b5050505050905090565b600061042c610425610c17565b8484610c1f565b6001905092915050565b6000600554905090565b600061044d848484610dea565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610498610c17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050f90611610565b60405180910390fd5b61052c85610524610c17565b858403610c1f565b60019150509392505050565b6000600860009054906101000a900460ff16905090565b60006105f161055c610c17565b84846004600061056a610c17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105ec9190611722565b610c1f565b6001905092915050565b610603610c17565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790611630565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610746576001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061079f565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107f3610c17565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790611630565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461097890611800565b80601f01602080910402602001604051908101604052809291908181526020018280546109a490611800565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050905090565b610a058282611114565b5050565b60008060046000610a18610c17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90611690565b60405180910390fd5b610ae9610ae0610c17565b85858403610c1f565b600191505092915050565b6000610b08610b01610c17565b8484610dea565b6001905092915050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690611670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf6906115f0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ddd91906116d0565b60405180910390a3505050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e8b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f0057600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690611650565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790611650565b60405180910390fd5b610f7b83838361130a565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990611650565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110979190611722565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110fb91906116d0565b60405180910390a361110e84848461130f565b50505050565b61111c610c17565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090611630565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906116b0565b60405180910390fd5b6112256000838361130a565b80600560008282546112379190611722565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461128d9190611722565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112f291906116d0565b60405180910390a36113066000838361130f565b5050565b505050565b505050565b60008135905061132381611a32565b92915050565b60008135905061133881611a49565b92915050565b60006020828403121561135057600080fd5b600061135e84828501611314565b91505092915050565b6000806040838503121561137a57600080fd5b600061138885828601611314565b925050602061139985828601611314565b9150509250929050565b6000806000606084860312156113b857600080fd5b60006113c686828701611314565b93505060206113d786828701611314565b92505060406113e886828701611329565b9150509250925092565b6000806040838503121561140557600080fd5b600061141385828601611314565b925050602061142485828601611329565b9150509250929050565b61143781611778565b82525050565b6114468161178a565b82525050565b600061145782611706565b6114618185611711565b93506114718185602086016117cd565b61147a81611890565b840191505092915050565b6000611492602283611711565b915061149d826118a1565b604082019050919050565b60006114b5602883611711565b91506114c0826118f0565b604082019050919050565b60006114d8602083611711565b91506114e38261193f565b602082019050919050565b60006114fb600083611711565b915061150682611968565b600082019050919050565b600061151e602483611711565b91506115298261196b565b604082019050919050565b6000611541602583611711565b915061154c826119ba565b604082019050919050565b6000611564601f83611711565b915061156f82611a09565b602082019050919050565b611583816117b6565b82525050565b611592816117c0565b82525050565b60006020820190506115ad600083018461142e565b92915050565b60006020820190506115c8600083018461143d565b92915050565b600060208201905081810360008301526115e8818461144c565b905092915050565b6000602082019050818103600083015261160981611485565b9050919050565b60006020820190508181036000830152611629816114a8565b9050919050565b60006020820190508181036000830152611649816114cb565b9050919050565b60006020820190508181036000830152611669816114ee565b9050919050565b6000602082019050818103600083015261168981611511565b9050919050565b600060208201905081810360008301526116a981611534565b9050919050565b600060208201905081810360008301526116c981611557565b9050919050565b60006020820190506116e5600083018461157a565b92915050565b60006020820190506117006000830184611589565b92915050565b600081519050919050565b600082825260208201905092915050565b600061172d826117b6565b9150611738836117b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561176d5761176c611832565b5b828201905092915050565b600061178382611796565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156117eb5780820151818401526020810190506117d0565b838111156117fa576000848401525b50505050565b6000600282049050600182168061181857607f821691505b6020821081141561182c5761182b611861565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611a3b81611778565b8114611a4657600080fd5b50565b611a52816117b6565b8114611a5d57600080fd5b5056fea2646970667358221220cd490444f051ef0cfaf9a649f03464419683d30c88ff95eb821dcbf5c03405bd64736f6c634300080100330000000000000000000000006d6ea1186f78b634b9294f18ba22b2d26a137b430000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f40000