6080604052736bb0d4abed560788db07aafd2ea74f4e83090505600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b506040518060400160405280600a81526020017f5342434f4d4d45524345000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5342434f4d0000000000000000000000000000000000000000000000000000008152508160039080519060200190620000eb92919062000388565b5080600490805190602001906200010492919062000388565b5050506200014b336200011c6200021560201b60201c565b60ff16600a6200012d919062000578565b640218711a006200013f9190620006b5565b6200021e60201b60201c565b6001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600073997a6e2fc9b089ec202d31c594743277f09a125073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007ea565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002889062000470565b60405180910390fd5b620002a5600083836200038360201b60201c565b8060026000828254620002b99190620004c0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003109190620004c0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000377919062000492565b60405180910390a35050565b505050565b828054620003969062000720565b90600052602060002090601f016020900481019282620003ba576000855562000406565b82601f10620003d557805160ff191683800117855562000406565b8280016001018555821562000406579182015b8281111562000405578251825591602001919060010190620003e8565b5b50905062000415919062000419565b5090565b5b80821115620004345760008160009055506001016200041a565b5090565b600062000447601f83620004af565b91506200045482620007c1565b602082019050919050565b6200046a8162000716565b82525050565b600060208201905081810360008301526200048b8162000438565b9050919050565b6000602082019050620004a960008301846200045f565b92915050565b600082825260208201905092915050565b6000620004cd8262000716565b9150620004da8362000716565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000512576200051162000756565b5b828201905092915050565b6000808291508390505b60018511156200056f5780860481111562000547576200054662000756565b5b6001851615620005575780820291505b80810290506200056785620007b4565b945062000527565b94509492505050565b6000620005858262000716565b9150620005928362000716565b9250620005c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c9565b905092915050565b600082620005db5760019050620006ae565b81620005eb5760009050620006ae565b81600181146200060457600281146200060f5762000645565b6001915050620006ae565b60ff84111562000624576200062362000756565b5b8360020a9150848211156200063e576200063d62000756565b5b50620006ae565b5060208310610133831016604e8410600b84101617156200067f5782820a90508381111562000679576200067862000756565b5b620006ae565b6200068e84848460016200051d565b92509050818404811115620006a857620006a762000756565b5b81810290505b9392505050565b6000620006c28262000716565b9150620006cf8362000716565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200070b576200070a62000756565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200073957607f821691505b6020821081141562000750576200074f62000785565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61180b80620007fa6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806395d89b41146101d3578063a457c2d7146101f1578063a9059cbb14610221578063cfdb63ac14610251578063dd62ed3e14610281576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c16102b1565b6040516100ce91906111bd565b60405180910390f35b6100f160048036038101906100ec919061100b565b610343565b6040516100fe91906111a2565b60405180910390f35b61010f610361565b60405161011c91906112bf565b60405180910390f35b61013f600480360381019061013a9190610fbc565b61036b565b60405161014c91906111a2565b60405180910390f35b61015d61046c565b60405161016a91906112da565b60405180910390f35b61018d6004803603810190610188919061100b565b610475565b60405161019a91906111a2565b60405180910390f35b6101bd60048036038101906101b89190610f57565b610521565b6040516101ca91906112bf565b60405180910390f35b6101db610569565b6040516101e891906111bd565b60405180910390f35b61020b6004803603810190610206919061100b565b6105fb565b60405161021891906111a2565b60405180910390f35b61023b6004803603810190610236919061100b565b6106ef565b60405161024891906111a2565b60405180910390f35b61026b60048036038101906102669190610f57565b61070d565b60405161027891906111a2565b60405180910390f35b61029b60048036038101906102969190610f80565b61072d565b6040516102a891906112bf565b60405180910390f35b6060600380546102c0906114ae565b80601f01602080910402602001604051908101604052809291908181526020018280546102ec906114ae565b80156103395780601f1061030e57610100808354040283529160200191610339565b820191906000526020600020905b81548152906001019060200180831161031c57829003601f168201915b5050505050905090565b60006103576103506107b4565b84846107bc565b6001905092915050565b6000600254905090565b6000610378848484610987565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103c36107b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043a9061123f565b60405180910390fd5b6104608561044f6107b4565b858461045b91906113f2565b6107bc565b60019150509392505050565b60006012905090565b60006105176104826107b4565b8484600160006104906107b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105129190611311565b6107bc565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610578906114ae565b80601f01602080910402602001604051908101604052809291908181526020018280546105a4906114ae565b80156105f15780601f106105c6576101008083540402835291602001916105f1565b820191906000526020600020905b8154815290600101906020018083116105d457829003601f168201915b5050505050905090565b6000806001600061060a6107b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be9061129f565b60405180910390fd5b6106e46106d26107b4565b8585846106df91906113f2565b6107bc565b600191505092915050565b60006107036106fc6107b4565b8484610987565b6001905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561082c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108239061127f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561089c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610893906111ff565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161097a91906112bf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee9061125f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e906111df565b60405180910390fd5b610a72838383610f28565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef9061121f565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610b995750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610cab578181610baa91906113f2565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c3a9190611311565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c9e91906112bf565b60405180910390a3610f22565b600082600f6103e8610cbd91906113f2565b6001600f6103e88088610cd09190611398565b610cda9190611311565b610ce491906113f2565b610cee91906113f2565b610cf89190611367565b610d0291906113f2565b90508282610d1091906113f2565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083610d5e91906113f2565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dab9190611311565b9250508190555080600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e229190611311565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386610e8491906113f2565b604051610e9191906112bf565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f1891906112bf565b60405180910390a3505b50505050565b505050565b600081359050610f3c816117a7565b92915050565b600081359050610f51816117be565b92915050565b600060208284031215610f6957600080fd5b6000610f7784828501610f2d565b91505092915050565b60008060408385031215610f9357600080fd5b6000610fa185828601610f2d565b9250506020610fb285828601610f2d565b9150509250929050565b600080600060608486031215610fd157600080fd5b6000610fdf86828701610f2d565b9350506020610ff086828701610f2d565b925050604061100186828701610f42565b9150509250925092565b6000806040838503121561101e57600080fd5b600061102c85828601610f2d565b925050602061103d85828601610f42565b9150509250929050565b61105081611438565b82525050565b6000611061826112f5565b61106b8185611300565b935061107b81856020860161147b565b6110848161156d565b840191505092915050565b600061109c602383611300565b91506110a78261157e565b604082019050919050565b60006110bf602283611300565b91506110ca826115cd565b604082019050919050565b60006110e2602683611300565b91506110ed8261161c565b604082019050919050565b6000611105602883611300565b91506111108261166b565b604082019050919050565b6000611128602583611300565b9150611133826116ba565b604082019050919050565b600061114b602483611300565b915061115682611709565b604082019050919050565b600061116e602583611300565b915061117982611758565b604082019050919050565b61118d81611464565b82525050565b61119c8161146e565b82525050565b60006020820190506111b76000830184611047565b92915050565b600060208201905081810360008301526111d78184611056565b905092915050565b600060208201905081810360008301526111f88161108f565b9050919050565b60006020820190508181036000830152611218816110b2565b9050919050565b60006020820190508181036000830152611238816110d5565b9050919050565b60006020820190508181036000830152611258816110f8565b9050919050565b600060208201905081810360008301526112788161111b565b9050919050565b600060208201905081810360008301526112988161113e565b9050919050565b600060208201905081810360008301526112b881611161565b9050919050565b60006020820190506112d46000830184611184565b92915050565b60006020820190506112ef6000830184611193565b92915050565b600081519050919050565b600082825260208201905092915050565b600061131c82611464565b915061132783611464565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561135c5761135b6114e0565b5b828201905092915050565b600061137282611464565b915061137d83611464565b92508261138d5761138c61150f565b5b828204905092915050565b60006113a382611464565b91506113ae83611464565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113e7576113e66114e0565b5b828202905092915050565b60006113fd82611464565b915061140883611464565b92508282101561141b5761141a6114e0565b5b828203905092915050565b600061143182611444565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561149957808201518184015260208101905061147e565b838111156114a8576000848401525b50505050565b600060028204905060018216806114c657607f821691505b602082108114156114da576114d961153e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6117b081611426565b81146117bb57600080fd5b50565b6117c781611464565b81146117d257600080fd5b5056fea2646970667358221220db7246271e39bfaf386ab215c2f6eb6297b3fa1c1a5bad01542c3c767d5cb50b64736f6c63430008040033