6080604052734752ba5dbc23f44d87826276bf6fd6b1c372ad24600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b50604051620035523803806200355283398181016040528101906200008c91906200145a565b620000ac620000a062000f2f60201b60201c565b62000f3760201b60201c565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508260079081620001e491906200176a565b508160089081620001f691906200176a565b50600180600073c24091a8c88abd9fb3f5dbf5e5d61ea681aceb9173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000735542a4b2bd2b03d2aa131618cbd539cd84f7d31573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073758145a1999e78065dc1e1fdbe28e707d43314c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073af901b771c639f7635c94fc3a3c0b229cd1125f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073e174d75b4bd828060338415bd37b7b070e62c5ea73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073796aeda689693896fa27633c31a5a99fd2dac15d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000734bd8ce90842be8e54b2ae84dc652ef9eaaba9df973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000736a20edbf1a68ae669db89ff846ca6e975c67bca773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073016b2f35472b60619f34e295cabb83b9a80f8a9c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073ec7ed685f1750ae1772048a448faa48bf351b37573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073a67bf23e0767db3adb110a88b2e0a8b2de61db5273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073733a6cc6b4dffb4ead772355fd366bb6dc6c46e673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000734a80f66d3c2974e134ed5c6ececbba4376bc5c4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000731b069ceaaa1a57ba84311669af9e80024ccbd72a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000732ad118e0e8b3c2fabb0a8e49f91bedd9a80267c673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073985cf23fecfb3ff402d5e563274c17174998c50573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073d66836d7dc195fd0bdb5d61242b17ef020d037dc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073ad41173dcd506632ec2e008ad8b17def11acc1ab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000738ddb0f1949fd32e6f7ec9e54f4868c97069e8b2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073bd670c24419ea69526e2884491faca0ea7a55d7e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073c89a2bda39bf7209a0be52b17b46aace7b69852973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000738f47bb230cf3dada0ec45fa028ba64b1d79456c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073bdf9ea2738a8a9e001be7a2a51519b78bfcbf76073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073ae36b5421284d583bce77de1196f1dc8e4b1db1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073a894b36217eb2f524395c395d2689c8d4cfba53f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180600073fd62e7532a8a03aa9105596a02deabf8920d368d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b815181101562000d6457600180600084848151811062000cfd5762000cfc62001851565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000cd8565b506000738909dc15e40173ff4699343b6eb8132c65e18ec690506000309050600073420000000000000000000000000000000000000690506000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161062000ddb57828462000dde565b83835b915091506000828260405160200162000df9929190620018d0565b604051602081830303815290604052805190602001209050858160405160200162000e26929190620019da565b6040516020818303038152906040528051906020012060001c600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001806000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000f1f33670de0b6b3a76400008c62000f13919062001a53565b62000ffb60201b60201c565b5050505050505050505062001b8a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200106d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010649062001aff565b60405180910390fd5b806006600082825462001081919062001b21565b9250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620010d9919062001b21565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001140919062001b6d565b60405180910390a35050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620011758162001160565b81146200118157600080fd5b50565b60008151905062001195816200116a565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620011f082620011a5565b810181811067ffffffffffffffff82111715620012125762001211620011b6565b5b80604052505050565b6000620012276200114c565b9050620012358282620011e5565b919050565b600067ffffffffffffffff821115620012585762001257620011b6565b5b6200126382620011a5565b9050602081019050919050565b60005b838110156200129057808201518184015260208101905062001273565b60008484015250505050565b6000620012b3620012ad846200123a565b6200121b565b905082815260208101848484011115620012d257620012d1620011a0565b5b620012df84828562001270565b509392505050565b600082601f830112620012ff57620012fe6200119b565b5b8151620013118482602086016200129c565b91505092915050565b600067ffffffffffffffff821115620013385762001337620011b6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200137b826200134e565b9050919050565b6200138d816200136e565b81146200139957600080fd5b50565b600081519050620013ad8162001382565b92915050565b6000620013ca620013c4846200131a565b6200121b565b90508083825260208201905060208402830185811115620013f057620013ef62001349565b5b835b818110156200141d57806200140888826200139c565b845260208401935050602081019050620013f2565b5050509392505050565b600082601f8301126200143f576200143e6200119b565b5b815162001451848260208601620013b3565b91505092915050565b6000806000806080858703121562001477576200147662001156565b5b6000620014878782880162001184565b945050602085015167ffffffffffffffff811115620014ab57620014aa6200115b565b5b620014b987828801620012e7565b935050604085015167ffffffffffffffff811115620014dd57620014dc6200115b565b5b620014eb87828801620012e7565b925050606085015167ffffffffffffffff8111156200150f576200150e6200115b565b5b6200151d8782880162001427565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200157c57607f821691505b60208210810362001592576200159162001534565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620015fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620015bd565b620016088683620015bd565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200164b620016456200163f8462001160565b62001620565b62001160565b9050919050565b6000819050919050565b62001667836200162a565b6200167f620016768262001652565b848454620015ca565b825550505050565b600090565b6200169662001687565b620016a38184846200165c565b505050565b5b81811015620016cb57620016bf6000826200168c565b600181019050620016a9565b5050565b601f8211156200171a57620016e48162001598565b620016ef84620015ad565b81016020851015620016ff578190505b620017176200170e85620015ad565b830182620016a8565b50505b505050565b600082821c905092915050565b60006200173f600019846008026200171f565b1980831691505092915050565b60006200175a83836200172c565b9150826002028217905092915050565b620017758262001529565b67ffffffffffffffff811115620017915762001790620011b6565b5b6200179d825462001563565b620017aa828285620016cf565b600060209050601f831160018114620017e25760008415620017cd578287015190505b620017d985826200174c565b86555062001849565b601f198416620017f28662001598565b60005b828110156200181c57848901518255600182019150602085019450602081019050620017f5565b868310156200183c578489015162001838601f8916826200172c565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160601b9050919050565b60006200189a8262001880565b9050919050565b6000620018ae826200188d565b9050919050565b620018ca620018c4826200136e565b620018a1565b82525050565b6000620018de8285620018b5565b601482019150620018f08284620018b5565b6014820191508190509392505050565b600081905092915050565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b60006200194360018362001900565b915062001950826200190b565b600182019050919050565b6000819050919050565b6000819050919050565b620019846200197e826200195b565b62001965565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f600082015250565b6000620019c260208362001900565b9150620019cf826200198a565b602082019050919050565b6000620019e78262001934565b9150620019f58285620018b5565b60148201915062001a0782846200196f565b60208201915062001a1882620019b3565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062001a608262001160565b915062001a6d8362001160565b925082820262001a7d8162001160565b9150828204841483151762001a975762001a9662001a24565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001ae7601f8362001a9e565b915062001af48262001aaf565b602082019050919050565b6000602082019050818103600083015262001b1a8162001ad8565b9050919050565b600062001b2e8262001160565b915062001b3b8362001160565b925082820190508082111562001b565762001b5562001a24565b5b92915050565b62001b678162001160565b82525050565b600060208201905062001b84600083018462001b5c565b92915050565b6119b88062001b9a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461018f5780638da5cb5b146101bf57806395d89b41146101dd578063a9059cbb146101fb578063b2c1cc8f1461022b578063dd62ed3e14610247576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce56714610155578063349902ae14610173575b600080fd5b6100c1610277565b6040516100ce919061126b565b60405180910390f35b6100f160048036038101906100ec9190611326565b610309565b6040516100fe9190611381565b60405180910390f35b61010f610327565b60405161011c91906113ab565b60405180910390f35b61013f600480360381019061013a91906113c6565b610331565b60405161014c9190611381565b60405180910390f35b61015d610429565b60405161016a9190611435565b60405180910390f35b61018d60048036038101906101889190611450565b610432565b005b6101a960048036038101906101a49190611450565b610508565b6040516101b691906113ab565b60405180910390f35b6101c7610551565b6040516101d4919061148c565b60405180910390f35b6101e561057a565b6040516101f2919061126b565b60405180910390f35b61021560048036038101906102109190611326565b61060c565b6040516102229190611381565b60405180910390f35b61024560048036038101906102409190611450565b61062a565b005b610261600480360381019061025c91906114a7565b610701565b60405161026e91906113ab565b60405180910390f35b60606007805461028690611516565b80601f01602080910402602001604051908101604052809291908181526020018280546102b290611516565b80156102ff5780601f106102d4576101008083540402835291602001916102ff565b820191906000526020600020905b8154815290600101906020018083116102e257829003601f168201915b5050505050905090565b600061031d610316610788565b8484610790565b6001905092915050565b6000600654905090565b600061033e848484610959565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610389610788565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610400906115b9565b60405180910390fd5b61041d85610415610788565b858403610790565b60019150509392505050565b60006012905090565b61043a610788565b73ffffffffffffffffffffffffffffffffffffffff16610458610551565b73ffffffffffffffffffffffffffffffffffffffff16146104ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a590611625565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461058990611516565b80601f01602080910402602001604051908101604052809291908181526020018280546105b590611516565b80156106025780601f106105d757610100808354040283529160200191610602565b820191906000526020600020905b8154815290600101906020018083116105e557829003601f168201915b5050505050905090565b6000610620610619610788565b8484610959565b6001905092915050565b610632610788565b73ffffffffffffffffffffffffffffffffffffffff16610650610551565b73ffffffffffffffffffffffffffffffffffffffff16146106a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d90611625565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f6906116b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590611749565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161094c91906113ab565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bf906117db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e9061186d565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610ae5575060011515600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610b925760011515600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610b91578173ffffffffffffffffffffffffffffffffffffffff167ff20d42404966523f3964cbc1a442002fa59777f81cda927a7b21b86a06e358bb82604051610b8891906113ab565b60405180910390a25b5b600060019050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610c46575060011515600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b8015610c9b5750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610ca557600090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610d4c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610d5657600090505b8373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614158015610dbd57503273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015610e1a575060011515600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b15610e78576001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b73829f8c17cb74fc969217adb5374a02ba9469f2e073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f05575073829f8c17cb74fc969217adb5374a02ba9469f2e073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b15610f0f57600090505b8061104b576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000671bc16d674ec80000905080821015610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f906118ff565b60405180910390fd5b808203600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103d919061194e565b925050819055505050611170565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c9906118ff565b60405180910390fd5b828103600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611167919061194e565b92505081905550505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111cd91906113ab565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156112155780820151818401526020810190506111fa565b60008484015250505050565b6000601f19601f8301169050919050565b600061123d826111db565b61124781856111e6565b93506112578185602086016111f7565b61126081611221565b840191505092915050565b600060208201905081810360008301526112858184611232565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112bd82611292565b9050919050565b6112cd816112b2565b81146112d857600080fd5b50565b6000813590506112ea816112c4565b92915050565b6000819050919050565b611303816112f0565b811461130e57600080fd5b50565b600081359050611320816112fa565b92915050565b6000806040838503121561133d5761133c61128d565b5b600061134b858286016112db565b925050602061135c85828601611311565b9150509250929050565b60008115159050919050565b61137b81611366565b82525050565b60006020820190506113966000830184611372565b92915050565b6113a5816112f0565b82525050565b60006020820190506113c0600083018461139c565b92915050565b6000806000606084860312156113df576113de61128d565b5b60006113ed868287016112db565b93505060206113fe868287016112db565b925050604061140f86828701611311565b9150509250925092565b600060ff82169050919050565b61142f81611419565b82525050565b600060208201905061144a6000830184611426565b92915050565b6000602082840312156114665761146561128d565b5b6000611474848285016112db565b91505092915050565b611486816112b2565b82525050565b60006020820190506114a1600083018461147d565b92915050565b600080604083850312156114be576114bd61128d565b5b60006114cc858286016112db565b92505060206114dd858286016112db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061152e57607f821691505b602082108103611541576115406114e7565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006115a36028836111e6565b91506115ae82611547565b604082019050919050565b600060208201905081810360008301526115d281611596565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061160f6020836111e6565b915061161a826115d9565b602082019050919050565b6000602082019050818103600083015261163e81611602565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006116a16024836111e6565b91506116ac82611645565b604082019050919050565b600060208201905081810360008301526116d081611694565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006117336022836111e6565b915061173e826116d7565b604082019050919050565b6000602082019050818103600083015261176281611726565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117c56025836111e6565b91506117d082611769565b604082019050919050565b600060208201905081810360008301526117f4816117b8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006118576023836111e6565b9150611862826117fb565b604082019050919050565b600060208201905081810360008301526118868161184a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006118e96026836111e6565b91506118f48261188d565b604082019050919050565b60006020820190508181036000830152611918816118dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611959826112f0565b9150611964836112f0565b925082820190508082111561197c5761197b61191f565b5b9291505056fea2646970667358221220f0db5a46fe5147f2bce30c581eac10b9203ca4662fdb63df32a87bd168b7fd9464736f6c634300081800330000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a464c4f4f4e53544f4e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a464c4f4f4e53544f4e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000007191f897976da979148034ff9ead66175bc132c9000000000000000000000000faf9ae067507bac0d1b5b3f60ba4ccaa0be1fbc00000000000000000000000006d880643d591b46ce544a345b7dba7296995b8b2000000000000000000000000815ac2122f04144545f85eea9e1f9fd86bb71c89000000000000000000000000b3e90b460614422ae8e407b92bfb520dd996565a00000000000000000000000012685273b256d86548c4cfb52bf529e9bc67381f000000000000000000000000ae93b3d301e802ee0b406e71724986860643b8b4000000000000000000000000f57382d9e0524ae28ac186d12764700ccb8e43fb00000000000000000000000074bd8370ea14031cabbbb6d6ac7f1088a66beaff0000000000000000000000007a548d65996a650553738aa5c91ebc2dbdb459350000000000000000000000001e0974b19f5aa0e70dc9bca8f6a627053c0ca4380000000000000000000000008bb5284370f3a1b7ed0fb8ea110619e7267babd00000000000000000000000002d80b3401012912edabd04da2c99d1fd996ec68c000000000000000000000000bf74106b9119a584e7c5a3353e58e02bc39097a900000000000000000000000029e02a4113b525dc4d5435047e52ccb4faa2e6dd000000000000000000000000323c68e36bcef4c2e53216722b6bd0bc9e1a0e4d00000000000000000000000081b4bcd0c59ddd728256eab3b5fa8863bd3615a9000000000000000000000000e9eeb4c69436a393007a8db9166e567953caf838000000000000000000000000b5be38f5c4ed134dddfddb31c84eb9ebcbb9378f000000000000000000000000ec7483fe8f512c164f4eefbbaa4853bab10931690000000000000000000000002cc3afcf514d8f8c815d422e1447dc0d39002765000000000000000000000000ced0e37e25061d120739adb29433c9458b5684330000000000000000000000009e9caa604b8a21c0d6741a0f05ca8efbe06698a2000000000000000000000000d49f58dd99a707b6b85c78cc6f518708e643a93e0000000000000000000000008e96c4ad6c37b5df795c88d4e8dba07aec280d4f000000000000000000000000407b1f18b95d12e72e5cff9021c2b8f212e7cab4000000000000000000000000ef3972a91cd01f0b77169f3d1ec07417c927980b0000000000000000000000008883e9f5024affa2a0ec4c29ee19e0cc18f1395f000000000000000000000000b516ecd3748fe8a6ef2bcf7cdc8a8c933ed1cdba00000000000000000000000023021a46e6ec013a418bbd515d2740b4a63fc40100000000000000000000000094192bbe726b0f57c3439ca86798427a950b7dd100000000000000000000000075aadb3723ef9f75a619cc8bbb3f352a9a356c1a000000000000000000000000af0afbb49ef9b730a1ad78b5cd4cd442d97963ef0000000000000000000000002534ee32f8e21edfd06bdd93c6a13df6337294520000000000000000000000007e56a36ff7768cc112acfe4694c86061f2452bdf000000000000000000000000a0499844421decf61dc145d81c90cbeb6823bcc8000000000000000000000000945f989e106ee54a7d31b3cfbace6cc4c66a681300000000000000000000000018d126dc774c65e88f118bda5858932ca260c80b00000000000000000000000011aad4dfb1a0d91523b889093651dffd67d173880000000000000000000000008886200bd61a0cd7773c73e2da61da60d00ae974000000000000000000000000d2b6961bc19e1f965aebc231cca0c72b455b8d400000000000000000000000004f9392d0728ae3908da6fd0047c5aec7f7116a4d0000000000000000000000000328244c3ad84373d1da19210910926be60baa77000000000000000000000000729fc4df8db080cb1dd6552b5cd65e275cfef8a30000000000000000000000002b3a2a3a4e986f1a607be4e898c0c950f425f0b9000000000000000000000000835976b27d8824d7ebcec707c9dbd24d945baa70000000000000000000000000cbc1e502ae696e35a3ac57353e08d5ee863867ff0000000000000000000000000c8c467379d0f3a84661cc90adc631a67a94205700000000000000000000000002feea0231aa9bf3e678a66ed3b0571c51b3ea6e0000000000000000000000009b5f2beb4c44710fd842c895befd0684236e0545000000000000000000000000e4da809893b02f184d3d715e244e1f0e80625974000000000000000000000000e6d44edfea853ab5710b781fee3f26a56e3b6499000000000000000000000000ac86d68b07d3067c049efbd26a88da6672705087000000000000000000000000b1dd0a97c2b18c815988ee1bc588bbbe4f0f938c000000000000000000000000e57a4086a5c31deeb46f6a2e3c82d16f33031167000000000000000000000000c38c3b4e19357ba3ac87449a60b67c0f6d2557350000000000000000000000008f005227216948c0a5b74d69c5ff763be5bfdee200000000000000000000000000bcf73fd7cec3353840a2bbbd0a8de9149861660000000000000000000000002973fc90de10d0890a1f0a918c084092cc7bffa100000000000000000000000035ce0a8567e86ea6412adabeb7ab3a50f7ba16c2