{"matchId":"9867737","creationMatch":"match","runtimeMatch":"match","verifiedAt":"2025-11-09T22:15:16Z","creationBytecode":{"onchainBytecode":"0x60c06040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600b81526020017f476967676c652046756e640000000000000000000000000000000000000000008152506040518060400160405280600681526020017f474947474c4500000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000999565b5080600490805190602001906200010092919062000999565b5050506200012362000117620004ef60201b60201c565b620004f760201b60201c565b60007310ed43c718714eb63d5aa57b78b54704e256024e90506200014f816001620005bd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000ab3565b6040518363ffffffff1660e01b8152600401620002a292919062000af6565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005bd60201b60201c565b6200034560a0516001620006a760201b60201c565b600060059050600060059050600069d3c21bcecceda10000009050606460028262000371919062000b5c565b6200037d919062000bec565b600a81905550606460028262000394919062000b5c565b620003a0919062000bec565b600c81905550612710600582620003b8919062000b5c565b620003c4919062000bec565b600b81905550826011819055506011546010819055508160138190555060135460128190555073c7f501d25ea088aefca8b4b3ebd936aae12bf4a4600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000461620004536200070260201b60201c565b60016200072c60201b60201c565b620004743060016200072c60201b60201c565b6200048961dead60016200072c60201b60201c565b620004ab6200049d6200070260201b60201c565b6001620005bd60201b60201c565b620004be306001620005bd60201b60201c565b620004d361dead6001620005bd60201b60201c565b620004e533826200081660201b60201c565b5050505062000e09565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005cd620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f36200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200064c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006439062000c85565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200073c620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007626200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b29062000c85565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008809062000cf7565b60405180910390fd5b6200089d600083836200098f60201b60201c565b8060026000828254620008b1919062000d19565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000908919062000d19565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096f919062000d87565b60405180910390a36200098b600083836200099460201b60201c565b5050565b505050565b505050565b828054620009a79062000dd3565b90600052602060002090601f016020900481019282620009cb576000855562000a17565b82601f10620009e657805160ff191683800117855562000a17565b8280016001018555821562000a17579182015b8281111562000a16578251825591602001919060010190620009f9565b5b50905062000a26919062000a2a565b5090565b5b8082111562000a4557600081600090555060010162000a2b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a7b8262000a4e565b9050919050565b62000a8d8162000a6e565b811462000a9957600080fd5b50565b60008151905062000aad8162000a82565b92915050565b60006020828403121562000acc5762000acb62000a49565b5b600062000adc8482850162000a9c565b91505092915050565b62000af08162000a6e565b82525050565b600060408201905062000b0d600083018562000ae5565b62000b1c602083018462000ae5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b698262000b23565b915062000b768362000b23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb25762000bb162000b2d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bf98262000b23565b915062000c068362000b23565b92508262000c195762000c1862000bbd565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c6d60208362000c24565b915062000c7a8262000c35565b602082019050919050565b6000602082019050818103600083015262000ca08162000c5e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cdf601f8362000c24565b915062000cec8262000ca7565b602082019050919050565b6000602082019050818103600083015262000d128162000cd0565b9050919050565b600062000d268262000b23565b915062000d338362000b23565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d6b5762000d6a62000b2d565b5b828201905092915050565b62000d818162000b23565b82525050565b600060208201905062000d9e600083018462000d76565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dec57607f821691505b6020821081141562000e035762000e0262000da4565b5b50919050565b60805160a051614d9962000e676000396000818161101e0152818161177c01528181611d43015261282d015260008181610bb101528181611db4015281816127d5015281816135bc0152818161369d01526136c40152614d996000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220971673a82909ea05d019a57eaff9d44a4e78b642330b5772a2e5bf5b92228d2164736f6c634300080b0033","recompiledBytecode":"0x60c06040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600b81526020017f476967676c652046756e640000000000000000000000000000000000000000008152506040518060400160405280600681526020017f474947474c4500000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000999565b5080600490805190602001906200010092919062000999565b5050506200012362000117620004ef60201b60201c565b620004f760201b60201c565b60007310ed43c718714eb63d5aa57b78b54704e256024e90506200014f816001620005bd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000ab3565b6040518363ffffffff1660e01b8152600401620002a292919062000af6565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005bd60201b60201c565b6200034560a0516001620006a760201b60201c565b600060059050600060059050600069d3c21bcecceda10000009050606460028262000371919062000b5c565b6200037d919062000bec565b600a81905550606460028262000394919062000b5c565b620003a0919062000bec565b600c81905550612710600582620003b8919062000b5c565b620003c4919062000bec565b600b81905550826011819055506011546010819055508160138190555060135460128190555073c7f501d25ea088aefca8b4b3ebd936aae12bf4a4600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000461620004536200070260201b60201c565b60016200072c60201b60201c565b620004743060016200072c60201b60201c565b6200048961dead60016200072c60201b60201c565b620004ab6200049d6200070260201b60201c565b6001620005bd60201b60201c565b620004be306001620005bd60201b60201c565b620004d361dead6001620005bd60201b60201c565b620004e533826200081660201b60201c565b5050505062000e09565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005cd620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f36200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200064c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006439062000c85565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200073c620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007626200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b29062000c85565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008809062000cf7565b60405180910390fd5b6200089d600083836200098f60201b60201c565b8060026000828254620008b1919062000d19565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000908919062000d19565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096f919062000d87565b60405180910390a36200098b600083836200099460201b60201c565b5050565b505050565b505050565b828054620009a79062000dd3565b90600052602060002090601f016020900481019282620009cb576000855562000a17565b82601f10620009e657805160ff191683800117855562000a17565b8280016001018555821562000a17579182015b8281111562000a16578251825591602001919060010190620009f9565b5b50905062000a26919062000a2a565b5090565b5b8082111562000a4557600081600090555060010162000a2b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a7b8262000a4e565b9050919050565b62000a8d8162000a6e565b811462000a9957600080fd5b50565b60008151905062000aad8162000a82565b92915050565b60006020828403121562000acc5762000acb62000a49565b5b600062000adc8482850162000a9c565b91505092915050565b62000af08162000a6e565b82525050565b600060408201905062000b0d600083018562000ae5565b62000b1c602083018462000ae5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b698262000b23565b915062000b768362000b23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb25762000bb162000b2d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bf98262000b23565b915062000c068362000b23565b92508262000c195762000c1862000bbd565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c6d60208362000c24565b915062000c7a8262000c35565b602082019050919050565b6000602082019050818103600083015262000ca08162000c5e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cdf601f8362000c24565b915062000cec8262000ca7565b602082019050919050565b6000602082019050818103600083015262000d128162000cd0565b9050919050565b600062000d268262000b23565b915062000d338362000b23565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d6b5762000d6a62000b2d565b5b828201905092915050565b62000d818162000b23565b82525050565b600060208201905062000d9e600083018462000d76565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dec57607f821691505b6020821081141562000e035762000e0262000da4565b5b50919050565b60805160a051614d9962000e676000396000818161101e0152818161177c01528181611d43015261282d015260008181610bb101528181611db4015281816127d5015281816135bc0152818161369d01526136c40152614d996000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220aab09e998046163f20fca3fe3a5467d5c1143c3f86f3b39a907138b2f12a665264736f6c634300080b0033","sourceMap":"11701:12739:0:-:0;;;12182:4;12153:33;;;;;;;;;;;;;;;;;;;;12221:5;12193:33;;;;;;;;;;;;;;;;;;;;12452:4;12417:39;;;;;;;;;;;;;;;;;;;;13360:1800;;;;;;;;;;2881:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;2948;:13;;;;;;;;;;;;:::i;:::-;;2982:7;2972;:17;;;;;;;;;;;;:::i;:::-;;2881:116;;10213:32;10232:12;:10;;;:12;;:::i;:::-;10213:18;;;:32;;:::i;:::-;13416:35:::1;13473:42;13416:100;;13537:58;13571:16;13590:4;13537:25;;;:58;;:::i;:::-;13624:16;13606:34;;;;;;;;::::0;::::1;13695:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13677:56;;;13742:4;13749:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13677:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13661:112;;;;;;;;::::0;::::1;13784:55;13818:13;;13834:4;13784:25;;;:55;;:::i;:::-;13850:58;13887:13;;13903:4;13850:28;;;:58;;:::i;:::-;13925:18;13946:1;13925:22;;13961:19;13983:1;13961:23;;14005:19;14027:14;14005:36;;14103:3;14099:1;14085:11;:15;;;;:::i;:::-;:21;;;;:::i;:::-;14062:20;:44;;;;14177:3;14173:1;14159:11;:15;;;;:::i;:::-;:21;;;;:::i;:::-;14147:9;:33;;;;14246:5;14242:1;14228:11;:15;;;;:::i;:::-;:23;;;;:::i;:::-;14207:18;:44;;;;14318:10;14306:9;:22;;;;14355:9;;14339:12;:25;;;;14390:11;14377:10;:24;;;;14428:10;;14412:13;:26;;;;14498:42;14478:9;;:63;;;;;;;;;;;;;;;;;;14647:30;14663:7;:5;;;:7;;:::i;:::-;14672:4;14647:15;;;:30;;:::i;:::-;14688:36;14712:4;14719;14688:15;;;:36;;:::i;:::-;14735:38;14759:6;14768:4;14735:15;;;:38;;:::i;:::-;14794:40;14820:7;:5;;;:7;;:::i;:::-;14829:4;14794:25;;;:40;;:::i;:::-;14845:46;14879:4;14886;14845:25;;;:46;;:::i;:::-;14902:48;14936:6;14945:4;14902:25;;;:48;;:::i;:::-;15122:30;15128:10;15140:11;15122:5;;;:30;;:::i;:::-;13405:1755;;;;11701:12739:::0;;99:98;152:7;179:10;172:17;;99:98;:::o;10804:191::-;10878:16;10897:6;;;;;;;;;;;10878:25;;10923:8;10914:6;;:17;;;;;;;;;;;;;;;;;;10978:8;10947:40;;10968:8;10947:40;;;;;;;;;;;;10867:128;10804:191;:::o;16705:144::-;10407:12;:10;;;:12;;:::i;:::-;10396:23;;:7;:5;;;:7;;:::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16837:4:::1;16795:31;:39;16827:6;16795:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16705:144:::0;;:::o;17902:130::-;18019:5;17985:25;:31;18011:4;17985:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17902:130;;:::o;10261:87::-;10307:7;10334:6;;;;;;;;;;;10327:13;;10261:87;:::o;17289:132::-;10407:12;:10;;;:12;;:::i;:::-;10396:23;;:7;:5;;;:7;;:::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17405:8:::1;17374:19;:28;17394:7;17374:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17289:132:::0;;:::o;6062:399::-;6165:1;6146:21;;:7;:21;;;;6138:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6216:49;6245:1;6249:7;6258:6;6216:20;;;:49;;:::i;:::-;6294:6;6278:12;;:22;;;;;;;:::i;:::-;;;;;;;;6333:6;6311:9;:18;6321:7;6311:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;6376:7;6355:37;;6372:1;6355:37;;;6385:6;6355:37;;;;;;:::i;:::-;;;;;;;;6405:48;6433:1;6437:7;6446:6;6405:19;;;:48;;:::i;:::-;6062:399;;:::o;7456:125::-;;;;:::o;7589:124::-;;;;:::o;11701:12739::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:332::-;1447:4;1485:2;1474:9;1470:18;1462:26;;1498:71;1566:1;1555:9;1551:17;1542:6;1498:71;:::i;:::-;1579:72;1647:2;1636:9;1632:18;1623:6;1579:72;:::i;:::-;1326:332;;;;;:::o;1664:77::-;1701:7;1730:5;1719:16;;1664:77;;;:::o;1747:180::-;1795:77;1792:1;1785:88;1892:4;1889:1;1882:15;1916:4;1913:1;1906:15;1933:348;1973:7;1996:20;2014:1;1996:20;:::i;:::-;1991:25;;2030:20;2048:1;2030:20;:::i;:::-;2025:25;;2218:1;2150:66;2146:74;2143:1;2140:81;2135:1;2128:9;2121:17;2117:105;2114:131;;;2225:18;;:::i;:::-;2114:131;2273:1;2270;2266:9;2255:20;;1933:348;;;;:::o;2287:180::-;2335:77;2332:1;2325:88;2432:4;2429:1;2422:15;2456:4;2453:1;2446:15;2473:185;2513:1;2530:20;2548:1;2530:20;:::i;:::-;2525:25;;2564:20;2582:1;2564:20;:::i;:::-;2559:25;;2603:1;2593:35;;2608:18;;:::i;:::-;2593:35;2650:1;2647;2643:9;2638:14;;2473:185;;;;:::o;2664:169::-;2748:11;2782:6;2777:3;2770:19;2822:4;2817:3;2813:14;2798:29;;2664:169;;;;:::o;2839:182::-;2979:34;2975:1;2967:6;2963:14;2956:58;2839:182;:::o;3027:366::-;3169:3;3190:67;3254:2;3249:3;3190:67;:::i;:::-;3183:74;;3266:93;3355:3;3266:93;:::i;:::-;3384:2;3379:3;3375:12;3368:19;;3027:366;;;:::o;3399:419::-;3565:4;3603:2;3592:9;3588:18;3580:26;;3652:9;3646:4;3642:20;3638:1;3627:9;3623:17;3616:47;3680:131;3806:4;3680:131;:::i;:::-;3672:139;;3399:419;;;:::o;3824:181::-;3964:33;3960:1;3952:6;3948:14;3941:57;3824:181;:::o;4011:366::-;4153:3;4174:67;4238:2;4233:3;4174:67;:::i;:::-;4167:74;;4250:93;4339:3;4250:93;:::i;:::-;4368:2;4363:3;4359:12;4352:19;;4011:366;;;:::o;4383:419::-;4549:4;4587:2;4576:9;4572:18;4564:26;;4636:9;4630:4;4626:20;4622:1;4611:9;4607:17;4600:47;4664:131;4790:4;4664:131;:::i;:::-;4656:139;;4383:419;;;:::o;4808:305::-;4848:3;4867:20;4885:1;4867:20;:::i;:::-;4862:25;;4901:20;4919:1;4901:20;:::i;:::-;4896:25;;5055:1;4987:66;4983:74;4980:1;4977:81;4974:107;;;5061:18;;:::i;:::-;4974:107;5105:1;5102;5098:9;5091:16;;4808:305;;;;:::o;5119:118::-;5206:24;5224:5;5206:24;:::i;:::-;5201:3;5194:37;5119:118;;:::o;5243:222::-;5336:4;5374:2;5363:9;5359:18;5351:26;;5387:71;5455:1;5444:9;5440:17;5431:6;5387:71;:::i;:::-;5243:222;;;;:::o;5471:180::-;5519:77;5516:1;5509:88;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5657:320;5701:6;5738:1;5732:4;5728:12;5718:22;;5785:1;5779:4;5775:12;5806:18;5796:81;;5862:4;5854:6;5850:17;5840:27;;5796:81;5924:2;5916:6;5913:14;5893:18;5890:38;5887:84;;;5943:18;;:::i;:::-;5887:84;5708:269;5657:320;;;:::o;11701:12739:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa2646970667358221220aab09e998046163f20fca3fe3a5467d5c1143c3f86f3b39a907138b2f12a665264736f6c634300080b0033","offset":23499}},"transformations":[{"id":"1","type":"replace","offset":23499,"reason":"cborAuxdata"}],"transformationValues":{"cborAuxdata":{"1":"0xa2646970667358221220971673a82909ea05d019a57eaff9d44a4e78b642330b5772a2e5bf5b92228d2164736f6c634300080b0033"}}},"runtimeBytecode":{"onchainBytecode":"0x6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e81565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000d6b652aecb704b0aebec6317315afb90ba641d5781565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000d6b652aecb704b0aebec6317315afb90ba641d5773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000d6b652aecb704b0aebec6317315afb90ba641d5773ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000d6b652aecb704b0aebec6317315afb90ba641d5773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e846121ba565b7f00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220971673a82909ea05d019a57eaff9d44a4e78b642330b5772a2e5bf5b92228d2164736f6c634300080b0033","recompiledBytecode":"0x6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220aab09e998046163f20fca3fe3a5467d5c1143c3f86f3b39a907138b2f12a665264736f6c634300080b0033","sourceMap":"11701:12739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3005:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3919:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12788:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11777:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3326:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18046:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16242:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4096:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3225:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4677:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11882:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11835;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12153:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18214:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12537:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18630:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3442:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10484:103;;;;;;;;;;;;;:::i;:::-;;16861:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15452:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16705:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17745:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15267:130;;;;;;;;;;;;;:::i;:::-;;10261:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3113:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17429:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12503:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12607:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12572:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4900:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3577:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13010:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12193:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17289:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16482:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12417:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12030:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15848:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18351:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12469:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3760:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12072:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15638:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17073:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10595:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12112:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3005:100;3059:13;3092:5;3085:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3005:100;:::o;3919:169::-;4002:4;4019:39;4028:12;:10;:12::i;:::-;4042:7;4051:6;4019:8;:39::i;:::-;4076:4;4069:11;;3919:169;;;;:::o;12788:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11777:51::-;;;:::o;3326:108::-;3387:7;3414:12;;3407:19;;3326:108;:::o;18046:157::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18153:9:::1;;;;;;;;;;;18125:38;;18142:9;18125:38;;;;;;;;;;;;18186:9;18174;;:21;;;;;;;;;;;;;;;;;;18046:157:::0;:::o;16242:232::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16363:4:::1;16355;16351:1;16335:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16334:33;;;;:::i;:::-;16324:6;:43;;16316:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16462:4;16453:6;:13;;;;:::i;:::-;16430:20;:36;;;;16242:232:::0;:::o;4096:573::-;4236:4;4253:24;4280:11;:19;4292:6;4280:19;;;;;;;;;;;;;;;:33;4300:12;:10;:12::i;:::-;4280:33;;;;;;;;;;;;;;;;4253:60;;4348:17;4328:16;:37;4324:265;;4410:6;4390:16;:26;;4382:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4505:57;4514:6;4522:12;:10;:12::i;:::-;4555:6;4536:16;:25;4505:8;:57::i;:::-;4324:265;4601:36;4611:6;4619:9;4630:6;4601:9;:36::i;:::-;4657:4;4650:11;;;4096:573;;;;;:::o;3225:93::-;3283:5;3308:2;3301:9;;3225:93;:::o;4677:215::-;4765:4;4782:80;4791:12;:10;:12::i;:::-;4805:7;4851:10;4814:11;:25;4826:12;:10;:12::i;:::-;4814:25;;;;;;;;;;;;;;;:34;4840:7;4814:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4782:8;:80::i;:::-;4880:4;4873:11;;4677:215;;;;:::o;11882:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11835:::-;;;:::o;12153:33::-;;;;;;;;;;;;;:::o;18214:125::-;18279:4;18303:19;:28;18323:7;18303:28;;;;;;;;;;;;;;;;;;;;;;;;;18296:35;;18214:125;;;:::o;12537:28::-;;;;:::o;18630:168::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18708:6:::1;18703:88;18724:4;:11;18720:1;:15;18703:88;;;18774:5;18757;:14;18763:4;18768:1;18763:7;;;;;;;;:::i;:::-;;;;;;;;18757:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18737:3;;;;;:::i;:::-;;;;18703:88;;;;18630:168:::0;:::o;3442:127::-;3516:7;3543:9;:18;3553:7;3543:18;;;;;;;;;;;;;;;;3536:25;;3442:127;;;:::o;10484:103::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10549:30:::1;10576:1;10549:18;:30::i;:::-;10484:103::o:0;16861:203::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16943:7:::1;16931:9;:19;;;;16976:9;;16961:12;:24;;;;17020:2;17004:12;;:18;;16996:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16861:203:::0;:::o;15452:121::-;15504:4;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15538:5:::1;15521:14;;:22;;;;;;;;;;;;;;;;;;15561:4;15554:11;;15452:121:::0;:::o;16705:144::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16837:4:::1;16795:31;:39;16827:6;16795:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16705:144:::0;;:::o;17745:149::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17830:4:::1;17814:13;;:20;;;;;;;;;;;;;;;;;;17859:27;17879:6;17859:15;:19;;:27;;;;:::i;:::-;17845:11;:41;;;;17745:149:::0;:::o;15267:130::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15338:4:::1;15322:13;;:20;;;;;;;;;;;;;;;;;;15367:22;15387:1;15367:15;:19;;:22;;;;:::i;:::-;15353:11;:36;;;;15267:130::o:0;10261:87::-;10307:7;10334:6;;;;;;;;;;;10327:13;;10261:87;:::o;3113:104::-;3169:13;3202:7;3195:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3113:104;:::o;17429:244::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17536:13:::1;17528:21;;:4;:21;;;;17520:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17624:41;17653:4;17659:5;17624:28;:41::i;:::-;17429:244:::0;;:::o;12503:24::-;;;;:::o;12607:27::-;;;;:::o;12572:25::-;;;;:::o;4900:413::-;4993:4;5010:24;5037:11;:25;5049:12;:10;:12::i;:::-;5037:25;;;;;;;;;;;;;;;:34;5063:7;5037:34;;;;;;;;;;;;;;;;5010:61;;5110:15;5090:16;:35;;5082:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5203:67;5212:12;:10;:12::i;:::-;5226:7;5254:15;5235:16;:34;5203:8;:67::i;:::-;5301:4;5294:11;;;4900:413;;;;:::o;3577:175::-;3663:4;3680:42;3690:12;:10;:12::i;:::-;3704:9;3715:6;3680:9;:42::i;:::-;3740:4;3733:11;;3577:175;;;;:::o;13010:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12193:33::-;;;;;;;;;;;;;:::o;17289:132::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17405:8:::1;17374:19;:28;17394:7;17374:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17289:132:::0;;:::o;16482:211::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16604:4:::1;16598;16594:1;16578:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16577:31;;;;:::i;:::-;16567:6;:41;;16559:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16681:4;16672:6;:13;;;;:::i;:::-;16660:9;:25;;;;16482:211:::0;:::o;12417:39::-;;;;;;;;;;;;;:::o;12030:35::-;;;;:::o;15848:382::-;15929:4;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15986:6:::1;15982:1;15966:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;15953:9;:39;;15945:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16101:4;16097:1;16081:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16068:9;:37;;16060:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16193:9;16172:18;:30;;;;16219:4;16212:11;;15848:382:::0;;;:::o;18351:267::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18426:6:::1;18421:190;18442:4;:11;18438:1;:15;18421:190;;;18490:13;18479:24;;:4;18484:1;18479:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;18526:15;18507:35;;:4;18512:1;18507:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;18479:63;18475:125;;;18580:4;18563:5;:14;18569:4;18574:1;18569:7;;;;;;;;:::i;:::-;;;;;;;;18563:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18475:125;18455:3;;;;;:::i;:::-;;;;18421:190;;;;18351:267:::0;:::o;12469:27::-;;;;:::o;3760:151::-;3849:7;3876:11;:18;3888:5;3876:18;;;;;;;;;;;;;;;:27;3895:7;3876:27;;;;;;;;;;;;;;;;3869:34;;3760:151;;;;:::o;12072:33::-;;;;:::o;15638:135::-;15698:4;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15738:5:::1;15715:20;;:28;;;;;;;;;;;;;;;;;;15761:4;15754:11;;15638:135:::0;:::o;17073:208::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17157:7:::1;17144:10;:20;;;;17191:10;;17175:13;:26;;;;17237:2;17220:13;;:19;;17212:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17073:208:::0;:::o;10595:201::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10704:1:::1;10684:22;;:8;:22;;;;10676:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10760:28;10779:8;10760:18;:28::i;:::-;10595:201:::0;:::o;12112:24::-;;;;:::o;99:98::-;152:7;179:10;172:17;;99:98;:::o;7068:380::-;7221:1;7204:19;;:5;:19;;;;7196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7302:1;7283:21;;:7;:21;;;;7275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7386:6;7356:11;:18;7368:5;7356:18;;;;;;;;;;;;;;;:27;7375:7;7356:27;;;;;;;;;;;;;;;:36;;;;7424:7;7408:32;;7417:5;7408:32;;;7433:6;7408:32;;;;;;:::i;:::-;;;;;;;;7068:380;;;:::o;18806:3910::-;18954:1;18938:18;;:4;:18;;;;18930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19031:1;19017:16;;:2;:16;;;;19009:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19093:5;:11;19099:4;19093:11;;;;;;;;;;;;;;;;;;;;;;;;;19092:12;19084:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19226:1;19216:6;:11;19212:93;;;19244:28;19260:4;19266:2;19270:1;19244:15;:28::i;:::-;19287:7;;19212:93;19347:11;;19329:15;:29;19325:51;;;19372:4;19360:5;:9;19366:2;19360:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;19325:51;19401:14;;;;;;;;;;;19397:1834;;;19462:7;:5;:7::i;:::-;19454:15;;:4;:15;;;;:49;;;;;19496:7;:5;:7::i;:::-;19490:13;;:2;:13;;;;19454:49;:86;;;;;19538:1;19524:16;;:2;:16;;;;19454:86;:128;;;;;19575:6;19561:21;;:2;:21;;;;19454:128;:159;;;;;19604:9;;;;;;;;;;;19603:10;19454:159;19432:1788;;;19653:13;;;;;;;;;;;19648:150;;19699:19;:25;19719:4;19699:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19728:19;:23;19748:2;19728:23;;;;;;;;;;;;;;;;;;;;;;;;;19699:52;19691:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19648:150;19956:20;;;;;;;;;;;19952:423;;;20010:7;:5;:7::i;:::-;20004:13;;:2;:13;;;;:47;;;;;20035:15;20021:30;;:2;:30;;;;20004:47;:79;;;;;20069:13;20055:28;;:2;:28;;;;20004:79;20000:356;;;20161:12;20119:28;:39;20148:9;20119:39;;;;;;;;;;;;;;;;:54;20111:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;20320:12;20278:28;:39;20307:9;20278:39;;;;;;;;;;;;;;;:54;;;;20000:356;19952:423;20443:25;:31;20469:4;20443:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20479:31;:35;20511:2;20479:35;;;;;;;;;;;;;;;;;;;;;;;;;20478:36;20443:71;20439:766;;;20557:20;;20547:6;:30;;20539:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20692:9;;20675:13;20685:2;20675:9;:13::i;:::-;20666:6;:22;;;;:::i;:::-;:35;;20658:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20439:766;;;20818:25;:29;20844:2;20818:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20852:31;:37;20884:4;20852:37;;;;;;;;;;;;;;;;;;;;;;;;;20851:38;20818:71;20814:391;;;20932:20;;20922:6;:30;;20914:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20814:391;;;21059:31;:35;21091:2;21059:35;;;;;;;;;;;;;;;;;;;;;;;;;21054:151;;21152:9;;21135:13;21145:2;21135:9;:13::i;:::-;21126:6;:22;;;;:::i;:::-;:35;;21118:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21054:151;20814:391;20439:766;19432:1788;19397:1834;21245:28;21276:24;21294:4;21276:9;:24::i;:::-;21245:55;;21311:12;21350:18;;21326:20;:42;;21311:57;;21399:7;:34;;;;;21424:9;;;;;;;;;;;21423:10;21399:34;:83;;;;;21451:25;:31;21477:4;21451:31;;;;;;;;;;;;;;;;;;;;;;;;;21450:32;21399:83;:126;;;;;21500:19;:25;21520:4;21500:25;;;;;;;;;;;;;;;;;;;;;;;;;21499:26;21399:126;:167;;;;;21543:19;:23;21563:2;21543:23;;;;;;;;;;;;;;;;;;;;;;;;;21542:24;21399:167;21381:297;;;21605:4;21593:9;;:16;;;;;;;;;;;;;;;;;;21624:10;:8;:10::i;:::-;21661:5;21649:9;;:17;;;;;;;;;;;;;;;;;;21381:297;21690:12;21706:9;;;;;;;;;;;21705:10;21690:25;;21817:19;:25;21837:4;21817:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21846:19;:23;21866:2;21846:23;;;;;;;;;;;;;;;;;;;;;;;;;21817:52;21813:73;;;21881:5;21871:15;;21813:73;21917:12;22022:7;22018:645;;;22074:25;:29;22100:2;22074:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22123:1;22107:13;;:17;22074:50;22070:438;;;22151:34;22181:3;22151:25;22162:13;;22151:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;22144:41;;22240:13;;22227:10;;22220:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;22204:12;;:49;;;;;;;:::i;:::-;;;;;;;;22070:438;;;22314:25;:31;22340:4;22314:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22364:1;22349:12;;:16;22314:51;22311:197;;;22393:33;22422:3;22393:24;22404:12;;22393:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22386:40;;22480:12;;22468:9;;22461:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;22445:12;;:47;;;;;;;:::i;:::-;;;;;;;;22311:197;22070:438;22535:1;22528:4;:8;22524:91;;;22557:42;22573:4;22587;22594;22557:15;:42::i;:::-;22524:91;22647:4;22637:14;;;;;:::i;:::-;;;22018:645;22675:33;22691:4;22697:2;22701:6;22675:15;:33::i;:::-;18919:3797;;;;18806:3910;;;;:::o;10804:191::-;10878:16;10897:6;;;;;;;;;;;10878:25;;10923:8;10914:6;;:17;;;;;;;;;;;;;;;;;;10978:8;10947:40;;10968:8;10947:40;;;;;;;;;;;;10867:128;10804:191;:::o;8858:98::-;8916:7;8947:1;8943;:5;;;;:::i;:::-;8936:12;;8858:98;;;;:::o;17902:130::-;18019:5;17985:25;:31;18011:4;17985:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17902:130;;:::o;5321:733::-;5479:1;5461:20;;:6;:20;;;;5453:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5563:1;5542:23;;:9;:23;;;;5534:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5618:47;5639:6;5647:9;5658:6;5618:20;:47::i;:::-;5678:21;5702:9;:17;5712:6;5702:17;;;;;;;;;;;;;;;;5678:41;;5755:6;5738:13;:23;;5730:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5876:6;5860:13;:22;5840:9;:17;5850:6;5840:17;;;;;;;;;;;;;;;:42;;;;5928:6;5904:9;:20;5914:9;5904:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5969:9;5952:35;;5961:6;5952:35;;;5980:6;5952:35;;;;;;:::i;:::-;;;;;;;;6000:46;6020:6;6028:9;6039:6;6000:19;:46::i;:::-;5442:612;5321:733;;;:::o;23848:589::-;23887:23;23913:24;23931:4;23913:9;:24::i;:::-;23887:50;;23948:25;23976:12;;23948:40;;23999:12;24047:1;24028:15;:20;:46;;;;24073:1;24052:17;:22;24028:46;24025:60;;;24077:7;;;;;24025:60;24140:2;24119:18;;:23;;;;:::i;:::-;24101:15;:41;24098:111;;;24195:2;24174:18;;:23;;;;:::i;:::-;24156:41;;24098:111;24225:36;24243:17;24225;:36::i;:::-;24276:18;24297:21;24276:42;;24350:1;24335:12;:16;;;;24386:9;;;;;;;;;;;24378:23;;24409:10;24378:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24365:59;;;;;23876:561;;;;23848:589;:::o;9070:98::-;9128:7;9159:1;9155;:5;;;;:::i;:::-;9148:12;;9070:98;;;;:::o;9176:::-;9234:7;9265:1;9261;:5;;;;:::i;:::-;9254:12;;9176:98;;;;:::o;7456:125::-;;;;:::o;7589:124::-;;;;:::o;22724:590::-;22851:21;22889:1;22875:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22851:40;;22920:4;22902;22907:1;22902:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22946:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22936:4;22941:1;22936:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22981:62;22998:4;23013:15;23031:11;22981:8;:62::i;:::-;23082:15;:66;;;23163:11;23189:1;23233:4;23260;23280:15;23082:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22780:534;22724:590;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:86::-;6154:7;6194:4;6187:5;6183:16;6172:27;;6119:86;;;:::o;6211:112::-;6294:22;6310:5;6294:22;:::i;:::-;6289:3;6282:35;6211:112;;:::o;6329:214::-;6418:4;6456:2;6445:9;6441:18;6433:26;;6469:67;6533:1;6522:9;6518:17;6509:6;6469:67;:::i;:::-;6329:214;;;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6549:118;;:::o;6673:222::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:71;6885:1;6874:9;6870:17;6861:6;6817:71;:::i;:::-;6673:222;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:180;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7210:281;7293:27;7315:4;7293:27;:::i;:::-;7285:6;7281:40;7423:6;7411:10;7408:22;7387:18;7375:10;7372:34;7369:62;7366:88;;;7434:18;;:::i;:::-;7366:88;7474:10;7470:2;7463:22;7253:238;7210:281;;:::o;7497:129::-;7531:6;7558:20;;:::i;:::-;7548:30;;7587:33;7615:4;7607:6;7587:33;:::i;:::-;7497:129;;;:::o;7632:311::-;7709:4;7799:18;7791:6;7788:30;7785:56;;;7821:18;;:::i;:::-;7785:56;7871:4;7863:6;7859:17;7851:25;;7931:4;7925;7921:15;7913:23;;7632:311;;;:::o;7949:117::-;8058:1;8055;8048:12;8089:710;8185:5;8210:81;8226:64;8283:6;8226:64;:::i;:::-;8210:81;:::i;:::-;8201:90;;8311:5;8340:6;8333:5;8326:21;8374:4;8367:5;8363:16;8356:23;;8427:4;8419:6;8415:17;8407:6;8403:30;8456:3;8448:6;8445:15;8442:122;;;8475:79;;:::i;:::-;8442:122;8590:6;8573:220;8607:6;8602:3;8599:15;8573:220;;;8682:3;8711:37;8744:3;8732:10;8711:37;:::i;:::-;8706:3;8699:50;8778:4;8773:3;8769:14;8762:21;;8649:144;8633:4;8628:3;8624:14;8617:21;;8573:220;;;8577:21;8191:608;;8089:710;;;;;:::o;8822:370::-;8893:5;8942:3;8935:4;8927:6;8923:17;8919:27;8909:122;;8950:79;;:::i;:::-;8909:122;9067:6;9054:20;9092:94;9182:3;9174:6;9167:4;9159:6;9155:17;9092:94;:::i;:::-;9083:103;;8899:293;8822:370;;;;:::o;9198:539::-;9282:6;9331:2;9319:9;9310:7;9306:23;9302:32;9299:119;;;9337:79;;:::i;:::-;9299:119;9485:1;9474:9;9470:17;9457:31;9515:18;9507:6;9504:30;9501:117;;;9537:79;;:::i;:::-;9501:117;9642:78;9712:7;9703:6;9692:9;9688:22;9642:78;:::i;:::-;9632:88;;9428:302;9198:539;;;;:::o;9743:116::-;9813:21;9828:5;9813:21;:::i;:::-;9806:5;9803:32;9793:60;;9849:1;9846;9839:12;9793:60;9743:116;:::o;9865:133::-;9908:5;9946:6;9933:20;9924:29;;9962:30;9986:5;9962:30;:::i;:::-;9865:133;;;;:::o;10004:468::-;10069:6;10077;10126:2;10114:9;10105:7;10101:23;10097:32;10094:119;;;10132:79;;:::i;:::-;10094:119;10252:1;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10223:117;10379:2;10405:50;10447:7;10438:6;10427:9;10423:22;10405:50;:::i;:::-;10395:60;;10350:115;10004:468;;;;;:::o;10478:474::-;10546:6;10554;10603:2;10591:9;10582:7;10578:23;10574:32;10571:119;;;10609:79;;:::i;:::-;10571:119;10729:1;10754:53;10799:7;10790:6;10779:9;10775:22;10754:53;:::i;:::-;10744:63;;10700:117;10856:2;10882:53;10927:7;10918:6;10907:9;10903:22;10882:53;:::i;:::-;10872:63;;10827:118;10478:474;;;;;:::o;10958:180::-;11006:77;11003:1;10996:88;11103:4;11100:1;11093:15;11127:4;11124:1;11117:15;11144:320;11188:6;11225:1;11219:4;11215:12;11205:22;;11272:1;11266:4;11262:12;11293:18;11283:81;;11349:4;11341:6;11337:17;11327:27;;11283:81;11411:2;11403:6;11400:14;11380:18;11377:38;11374:84;;;11430:18;;:::i;:::-;11374:84;11195:269;11144:320;;;:::o;11470:182::-;11610:34;11606:1;11598:6;11594:14;11587:58;11470:182;:::o;11658:366::-;11800:3;11821:67;11885:2;11880:3;11821:67;:::i;:::-;11814:74;;11897:93;11986:3;11897:93;:::i;:::-;12015:2;12010:3;12006:12;11999:19;;11658:366;;;:::o;12030:419::-;12196:4;12234:2;12223:9;12219:18;12211:26;;12283:9;12277:4;12273:20;12269:1;12258:9;12254:17;12247:47;12311:131;12437:4;12311:131;:::i;:::-;12303:139;;12030:419;;;:::o;12455:180::-;12503:77;12500:1;12493:88;12600:4;12597:1;12590:15;12624:4;12621:1;12614:15;12641:348;12681:7;12704:20;12722:1;12704:20;:::i;:::-;12699:25;;12738:20;12756:1;12738:20;:::i;:::-;12733:25;;12926:1;12858:66;12854:74;12851:1;12848:81;12843:1;12836:9;12829:17;12825:105;12822:131;;;12933:18;;:::i;:::-;12822:131;12981:1;12978;12974:9;12963:20;;12641:348;;;;:::o;12995:180::-;13043:77;13040:1;13033:88;13140:4;13137:1;13130:15;13164:4;13161:1;13154:15;13181:185;13221:1;13238:20;13256:1;13238:20;:::i;:::-;13233:25;;13272:20;13290:1;13272:20;:::i;:::-;13267:25;;13311:1;13301:35;;13316:18;;:::i;:::-;13301:35;13358:1;13355;13351:9;13346:14;;13181:185;;;;:::o;13372:234::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:17;13576:2;13568:6;13564:15;13557:42;13372:234;:::o;13612:366::-;13754:3;13775:67;13839:2;13834:3;13775:67;:::i;:::-;13768:74;;13851:93;13940:3;13851:93;:::i;:::-;13969:2;13964:3;13960:12;13953:19;;13612:366;;;:::o;13984:419::-;14150:4;14188:2;14177:9;14173:18;14165:26;;14237:9;14231:4;14227:20;14223:1;14212:9;14208:17;14201:47;14265:131;14391:4;14265:131;:::i;:::-;14257:139;;13984:419;;;:::o;14409:227::-;14549:34;14545:1;14537:6;14533:14;14526:58;14618:10;14613:2;14605:6;14601:15;14594:35;14409:227;:::o;14642:366::-;14784:3;14805:67;14869:2;14864:3;14805:67;:::i;:::-;14798:74;;14881:93;14970:3;14881:93;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;14642:366;;;:::o;15014:419::-;15180:4;15218:2;15207:9;15203:18;15195:26;;15267:9;15261:4;15257:20;15253:1;15242:9;15238:17;15231:47;15295:131;15421:4;15295:131;:::i;:::-;15287:139;;15014:419;;;:::o;15439:305::-;15479:3;15498:20;15516:1;15498:20;:::i;:::-;15493:25;;15532:20;15550:1;15532:20;:::i;:::-;15527:25;;15686:1;15618:66;15614:74;15611:1;15608:81;15605:107;;;15692:18;;:::i;:::-;15605:107;15736:1;15733;15729:9;15722:16;;15439:305;;;;:::o;15750:180::-;15798:77;15795:1;15788:88;15895:4;15892:1;15885:15;15919:4;15916:1;15909:15;15936:233;15975:3;15998:24;16016:5;15998:24;:::i;:::-;15989:33;;16044:66;16037:5;16034:77;16031:103;;;16114:18;;:::i;:::-;16031:103;16161:1;16154:5;16150:13;16143:20;;15936:233;;;:::o;16175:179::-;16315:31;16311:1;16303:6;16299:14;16292:55;16175:179;:::o;16360:366::-;16502:3;16523:67;16587:2;16582:3;16523:67;:::i;:::-;16516:74;;16599:93;16688:3;16599:93;:::i;:::-;16717:2;16712:3;16708:12;16701:19;;16360:366;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:244::-;17297:34;17293:1;17285:6;17281:14;17274:58;17366:27;17361:2;17353:6;17349:15;17342:52;17157:244;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:224::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:7;18408:2;18400:6;18396:15;18389:32;18204:224;:::o;18434:366::-;18576:3;18597:67;18661:2;18656:3;18597:67;:::i;:::-;18590:74;;18673:93;18762:3;18673:93;:::i;:::-;18791:2;18786:3;18782:12;18775:19;;18434:366;;;:::o;18806:419::-;18972:4;19010:2;18999:9;18995:18;18987:26;;19059:9;19053:4;19049:20;19045:1;19034:9;19030:17;19023:47;19087:131;19213:4;19087:131;:::i;:::-;19079:139;;18806:419;;;:::o;19231:223::-;19371:34;19367:1;19359:6;19355:14;19348:58;19440:6;19435:2;19427:6;19423:15;19416:31;19231:223;:::o;19460:366::-;19602:3;19623:67;19687:2;19682:3;19623:67;:::i;:::-;19616:74;;19699:93;19788:3;19699:93;:::i;:::-;19817:2;19812:3;19808:12;19801:19;;19460:366;;;:::o;19832:419::-;19998:4;20036:2;20025:9;20021:18;20013:26;;20085:9;20079:4;20075:20;20071:1;20060:9;20056:17;20049:47;20113:131;20239:4;20113:131;:::i;:::-;20105:139;;19832:419;;;:::o;20257:240::-;20397:34;20393:1;20385:6;20381:14;20374:58;20466:23;20461:2;20453:6;20449:15;20442:48;20257:240;:::o;20503:366::-;20645:3;20666:67;20730:2;20725:3;20666:67;:::i;:::-;20659:74;;20742:93;20831:3;20742:93;:::i;:::-;20860:2;20855:3;20851:12;20844:19;;20503:366;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;20875:419;;;:::o;21300:239::-;21440:34;21436:1;21428:6;21424:14;21417:58;21509:22;21504:2;21496:6;21492:15;21485:47;21300:239;:::o;21545:366::-;21687:3;21708:67;21772:2;21767:3;21708:67;:::i;:::-;21701:74;;21784:93;21873:3;21784:93;:::i;:::-;21902:2;21897:3;21893:12;21886:19;;21545:366;;;:::o;21917:419::-;22083:4;22121:2;22110:9;22106:18;22098:26;;22170:9;22164:4;22160:20;22156:1;22145:9;22141:17;22134:47;22198:131;22324:4;22198:131;:::i;:::-;22190:139;;21917:419;;;:::o;22342:179::-;22482:31;22478:1;22470:6;22466:14;22459:55;22342:179;:::o;22527:366::-;22669:3;22690:67;22754:2;22749:3;22690:67;:::i;:::-;22683:74;;22766:93;22855:3;22766:93;:::i;:::-;22884:2;22879:3;22875:12;22868:19;;22527:366;;;:::o;22899:419::-;23065:4;23103:2;23092:9;23088:18;23080:26;;23152:9;23146:4;23142:20;23138:1;23127:9;23123:17;23116:47;23180:131;23306:4;23180:131;:::i;:::-;23172:139;;22899:419;;;:::o;23324:225::-;23464:34;23460:1;23452:6;23448:14;23441:58;23533:8;23528:2;23520:6;23516:15;23509:33;23324:225;:::o;23555:366::-;23697:3;23718:67;23782:2;23777:3;23718:67;:::i;:::-;23711:74;;23794:93;23883:3;23794:93;:::i;:::-;23912:2;23907:3;23903:12;23896:19;;23555:366;;;:::o;23927:419::-;24093:4;24131:2;24120:9;24116:18;24108:26;;24180:9;24174:4;24170:20;24166:1;24155:9;24151:17;24144:47;24208:131;24334:4;24208:131;:::i;:::-;24200:139;;23927:419;;;:::o;24352:223::-;24492:34;24488:1;24480:6;24476:14;24469:58;24561:6;24556:2;24548:6;24544:15;24537:31;24352:223;:::o;24581:366::-;24723:3;24744:67;24808:2;24803:3;24744:67;:::i;:::-;24737:74;;24820:93;24909:3;24820:93;:::i;:::-;24938:2;24933:3;24929:12;24922:19;;24581:366;;;:::o;24953:419::-;25119:4;25157:2;25146:9;25142:18;25134:26;;25206:9;25200:4;25196:20;25192:1;25181:9;25177:17;25170:47;25234:131;25360:4;25234:131;:::i;:::-;25226:139;;24953:419;;;:::o;25378:221::-;25518:34;25514:1;25506:6;25502:14;25495:58;25587:4;25582:2;25574:6;25570:15;25563:29;25378:221;:::o;25605:366::-;25747:3;25768:67;25832:2;25827:3;25768:67;:::i;:::-;25761:74;;25844:93;25933:3;25844:93;:::i;:::-;25962:2;25957:3;25953:12;25946:19;;25605:366;;;:::o;25977:419::-;26143:4;26181:2;26170:9;26166:18;26158:26;;26230:9;26224:4;26220:20;26216:1;26205:9;26201:17;26194:47;26258:131;26384:4;26258:131;:::i;:::-;26250:139;;25977:419;;;:::o;26402:224::-;26542:34;26538:1;26530:6;26526:14;26519:58;26611:7;26606:2;26598:6;26594:15;26587:32;26402:224;:::o;26632:366::-;26774:3;26795:67;26859:2;26854:3;26795:67;:::i;:::-;26788:74;;26871:93;26960:3;26871:93;:::i;:::-;26989:2;26984:3;26980:12;26973:19;;26632:366;;;:::o;27004:419::-;27170:4;27208:2;27197:9;27193:18;27185:26;;27257:9;27251:4;27247:20;27243:1;27232:9;27228:17;27221:47;27285:131;27411:4;27285:131;:::i;:::-;27277:139;;27004:419;;;:::o;27429:222::-;27569:34;27565:1;27557:6;27553:14;27546:58;27638:5;27633:2;27625:6;27621:15;27614:30;27429:222;:::o;27657:366::-;27799:3;27820:67;27884:2;27879:3;27820:67;:::i;:::-;27813:74;;27896:93;27985:3;27896:93;:::i;:::-;28014:2;28009:3;28005:12;27998:19;;27657:366;;;:::o;28029:419::-;28195:4;28233:2;28222:9;28218:18;28210:26;;28282:9;28276:4;28272:20;28268:1;28257:9;28253:17;28246:47;28310:131;28436:4;28310:131;:::i;:::-;28302:139;;28029:419;;;:::o;28454:305::-;28594:34;28590:1;28582:6;28578:14;28571:58;28663:34;28658:2;28650:6;28646:15;28639:59;28732:19;28727:2;28719:6;28715:15;28708:44;28454:305;:::o;28765:366::-;28907:3;28928:67;28992:2;28987:3;28928:67;:::i;:::-;28921:74;;29004:93;29093:3;29004:93;:::i;:::-;29122:2;29117:3;29113:12;29106:19;;28765:366;;;:::o;29137:419::-;29303:4;29341:2;29330:9;29326:18;29318:26;;29390:9;29384:4;29380:20;29376:1;29365:9;29361:17;29354:47;29418:131;29544:4;29418:131;:::i;:::-;29410:139;;29137:419;;;:::o;29562:172::-;29702:24;29698:1;29690:6;29686:14;29679:48;29562:172;:::o;29740:366::-;29882:3;29903:67;29967:2;29962:3;29903:67;:::i;:::-;29896:74;;29979:93;30068:3;29979:93;:::i;:::-;30097:2;30092:3;30088:12;30081:19;;29740:366;;;:::o;30112:419::-;30278:4;30316:2;30305:9;30301:18;30293:26;;30365:9;30359:4;30355:20;30351:1;30340:9;30336:17;30329:47;30393:131;30519:4;30393:131;:::i;:::-;30385:139;;30112:419;;;:::o;30537:297::-;30677:34;30673:1;30665:6;30661:14;30654:58;30746:34;30741:2;30733:6;30729:15;30722:59;30815:11;30810:2;30802:6;30798:15;30791:36;30537:297;:::o;30840:366::-;30982:3;31003:67;31067:2;31062:3;31003:67;:::i;:::-;30996:74;;31079:93;31168:3;31079:93;:::i;:::-;31197:2;31192:3;31188:12;31181:19;;30840:366;;;:::o;31212:419::-;31378:4;31416:2;31405:9;31401:18;31393:26;;31465:9;31459:4;31455:20;31451:1;31440:9;31436:17;31429:47;31493:131;31619:4;31493:131;:::i;:::-;31485:139;;31212:419;;;:::o;31637:240::-;31777:34;31773:1;31765:6;31761:14;31754:58;31846:23;31841:2;31833:6;31829:15;31822:48;31637:240;:::o;31883:366::-;32025:3;32046:67;32110:2;32105:3;32046:67;:::i;:::-;32039:74;;32122:93;32211:3;32122:93;:::i;:::-;32240:2;32235:3;32231:12;32224:19;;31883:366;;;:::o;32255:419::-;32421:4;32459:2;32448:9;32444:18;32436:26;;32508:9;32502:4;32498:20;32494:1;32483:9;32479:17;32472:47;32536:131;32662:4;32536:131;:::i;:::-;32528:139;;32255:419;;;:::o;32680:169::-;32820:21;32816:1;32808:6;32804:14;32797:45;32680:169;:::o;32855:366::-;32997:3;33018:67;33082:2;33077:3;33018:67;:::i;:::-;33011:74;;33094:93;33183:3;33094:93;:::i;:::-;33212:2;33207:3;33203:12;33196:19;;32855:366;;;:::o;33227:419::-;33393:4;33431:2;33420:9;33416:18;33408:26;;33480:9;33474:4;33470:20;33466:1;33455:9;33451:17;33444:47;33508:131;33634:4;33508:131;:::i;:::-;33500:139;;33227:419;;;:::o;33652:241::-;33792:34;33788:1;33780:6;33776:14;33769:58;33861:24;33856:2;33848:6;33844:15;33837:49;33652:241;:::o;33899:366::-;34041:3;34062:67;34126:2;34121:3;34062:67;:::i;:::-;34055:74;;34138:93;34227:3;34138:93;:::i;:::-;34256:2;34251:3;34247:12;34240:19;;33899:366;;;:::o;34271:419::-;34437:4;34475:2;34464:9;34460:18;34452:26;;34524:9;34518:4;34514:20;34510:1;34499:9;34495:17;34488:47;34552:131;34678:4;34552:131;:::i;:::-;34544:139;;34271:419;;;:::o;34696:191::-;34736:4;34756:20;34774:1;34756:20;:::i;:::-;34751:25;;34790:20;34808:1;34790:20;:::i;:::-;34785:25;;34829:1;34826;34823:8;34820:34;;;34834:18;;:::i;:::-;34820:34;34879:1;34876;34872:9;34864:17;;34696:191;;;;:::o;34893:225::-;35033:34;35029:1;35021:6;35017:14;35010:58;35102:8;35097:2;35089:6;35085:15;35078:33;34893:225;:::o;35124:366::-;35266:3;35287:67;35351:2;35346:3;35287:67;:::i;:::-;35280:74;;35363:93;35452:3;35363:93;:::i;:::-;35481:2;35476:3;35472:12;35465:19;;35124:366;;;:::o;35496:419::-;35662:4;35700:2;35689:9;35685:18;35677:26;;35749:9;35743:4;35739:20;35735:1;35724:9;35720:17;35713:47;35777:131;35903:4;35777:131;:::i;:::-;35769:139;;35496:419;;;:::o;35921:147::-;36022:11;36059:3;36044:18;;35921:147;;;;:::o;36074:114::-;;:::o;36194:398::-;36353:3;36374:83;36455:1;36450:3;36374:83;:::i;:::-;36367:90;;36466:93;36555:3;36466:93;:::i;:::-;36584:1;36579:3;36575:11;36568:18;;36194:398;;;:::o;36598:379::-;36782:3;36804:147;36947:3;36804:147;:::i;:::-;36797:154;;36968:3;36961:10;;36598:379;;;:::o;36983:143::-;37040:5;37071:6;37065:13;37056:22;;37087:33;37114:5;37087:33;:::i;:::-;36983:143;;;;:::o;37132:351::-;37202:6;37251:2;37239:9;37230:7;37226:23;37222:32;37219:119;;;37257:79;;:::i;:::-;37219:119;37377:1;37402:64;37458:7;37449:6;37438:9;37434:22;37402:64;:::i;:::-;37392:74;;37348:128;37132:351;;;;:::o;37489:85::-;37534:7;37563:5;37552:16;;37489:85;;;:::o;37580:158::-;37638:9;37671:61;37689:42;37698:32;37724:5;37698:32;:::i;:::-;37689:42;:::i;:::-;37671:61;:::i;:::-;37658:74;;37580:158;;;:::o;37744:147::-;37839:45;37878:5;37839:45;:::i;:::-;37834:3;37827:58;37744:147;;:::o;37897:114::-;37964:6;37998:5;37992:12;37982:22;;37897:114;;;:::o;38017:184::-;38116:11;38150:6;38145:3;38138:19;38190:4;38185:3;38181:14;38166:29;;38017:184;;;;:::o;38207:132::-;38274:4;38297:3;38289:11;;38327:4;38322:3;38318:14;38310:22;;38207:132;;;:::o;38345:108::-;38422:24;38440:5;38422:24;:::i;:::-;38417:3;38410:37;38345:108;;:::o;38459:179::-;38528:10;38549:46;38591:3;38583:6;38549:46;:::i;:::-;38627:4;38622:3;38618:14;38604:28;;38459:179;;;;:::o;38644:113::-;38714:4;38746;38741:3;38737:14;38729:22;;38644:113;;;:::o;38793:732::-;38912:3;38941:54;38989:5;38941:54;:::i;:::-;39011:86;39090:6;39085:3;39011:86;:::i;:::-;39004:93;;39121:56;39171:5;39121:56;:::i;:::-;39200:7;39231:1;39216:284;39241:6;39238:1;39235:13;39216:284;;;39317:6;39311:13;39344:63;39403:3;39388:13;39344:63;:::i;:::-;39337:70;;39430:60;39483:6;39430:60;:::i;:::-;39420:70;;39276:224;39263:1;39260;39256:9;39251:14;;39216:284;;;39220:14;39516:3;39509:10;;38917:608;;;38793:732;;;;:::o;39531:831::-;39794:4;39832:3;39821:9;39817:19;39809:27;;39846:71;39914:1;39903:9;39899:17;39890:6;39846:71;:::i;:::-;39927:80;40003:2;39992:9;39988:18;39979:6;39927:80;:::i;:::-;40054:9;40048:4;40044:20;40039:2;40028:9;40024:18;40017:48;40082:108;40185:4;40176:6;40082:108;:::i;:::-;40074:116;;40200:72;40268:2;40257:9;40253:18;40244:6;40200:72;:::i;:::-;40282:73;40350:3;40339:9;40335:19;40326:6;40282:73;:::i;:::-;39531:831;;;;;;;;:::o","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa2646970667358221220aab09e998046163f20fca3fe3a5467d5c1143c3f86f3b39a907138b2f12a665264736f6c634300080b0033","offset":19812}},"immutableReferences":{"1214":[{"start":2993,"length":32},{"start":7604,"length":32},{"start":10197,"length":32},{"start":13756,"length":32},{"start":13981,"length":32},{"start":14020,"length":32}],"1216":[{"start":4126,"length":32},{"start":6012,"length":32},{"start":7491,"length":32},{"start":10285,"length":32}]},"transformations":[{"id":"1214","type":"replace","offset":2993,"reason":"immutable"},{"id":"1214","type":"replace","offset":7604,"reason":"immutable"},{"id":"1214","type":"replace","offset":10197,"reason":"immutable"},{"id":"1214","type":"replace","offset":13756,"reason":"immutable"},{"id":"1214","type":"replace","offset":13981,"reason":"immutable"},{"id":"1214","type":"replace","offset":14020,"reason":"immutable"},{"id":"1216","type":"replace","offset":4126,"reason":"immutable"},{"id":"1216","type":"replace","offset":6012,"reason":"immutable"},{"id":"1216","type":"replace","offset":7491,"reason":"immutable"},{"id":"1216","type":"replace","offset":10285,"reason":"immutable"},{"id":"1","type":"replace","offset":19812,"reason":"cborAuxdata"}],"transformationValues":{"immutables":{"1214":"0x00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e","1216":"0x000000000000000000000000d6b652aecb704b0aebec6317315afb90ba641d57"},"cborAuxdata":{"1":"0xa2646970667358221220971673a82909ea05d019a57eaff9d44a4e78b642330b5772a2e5bf5b92228d2164736f6c634300080b0033"}}},"deployment":{"transactionHash":"0x3decddd55069f03c7ca7099a2a3963a9c3c553fdb98102e7231ae9cf8850a32e","blockNumber":"61963318","transactionIndex":"109","deployer":"0x32869AC00d4eA0bCF147e566B3DdC0d4A14e2866"},"sources":{"GIGGLE.sol":{"content":"// SPDX-License-Identifier: MIT\r\n\r\n\r\n\r\npragma solidity 0.8.11;\r\n\r\nabstract contract Context {\r\n    function _msgSender() internal view virtual returns (address) {\r\n        return msg.sender;\r\n    }\r\n\r\n    function _msgData() internal view virtual returns (bytes calldata) {\r\n        return msg.data;\r\n    }\r\n}\r\n\r\ninterface IUniswapV2Pair {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external pure returns (string memory);\r\n    function symbol() external pure returns (string memory);\r\n    function decimals() external pure returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n\r\n    event Swap(\r\n        address indexed sender,\r\n        uint amount0In,\r\n        uint amount1In,\r\n        uint amount0Out,\r\n        uint amount1Out,\r\n        address indexed to\r\n    );\r\n    event Sync(uint112 reserve0, uint112 reserve1);\r\n\r\n    function factory() external view returns (address);\r\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\r\n}\r\n\r\ninterface IUniswapV2Factory {\r\n    function createPair(address tokenA, address tokenB) external returns (address pair);\r\n}\r\n\r\ninterface IERC20 {\r\n    function totalSupply() external view returns (uint256);\r\n    function balanceOf(address account) external view returns (uint256);\r\n    function transfer(address recipient, uint256 amount) external returns (bool);\r\n    function allowance(address owner, address spender) external view returns (uint256);\r\n    function approve(address spender, uint256 amount) external returns (bool);\r\n    function transferFrom(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) external returns (bool);\r\n    \r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n\r\ninterface IERC20Metadata is IERC20 {\r\n    function name() external view returns (string memory);\r\n    function symbol() external view returns (string memory);\r\n    function decimals() external view returns (uint8);\r\n}\r\n\r\n\r\ncontract ERC20 is Context, IERC20, IERC20Metadata {\r\n    mapping(address => uint256) private _balances;\r\n\r\n    mapping(address => mapping(address => uint256)) private _allowances;\r\n\r\n    uint256 private _totalSupply;\r\n\r\n    string private _name;\r\n    string private _symbol;\r\n\r\n    constructor(string memory name_, string memory symbol_) {\r\n        _name = name_;\r\n        _symbol = symbol_;\r\n    }\r\n\r\n    function name() public view virtual override returns (string memory) {\r\n        return _name;\r\n    }\r\n\r\n    function symbol() public view virtual override returns (string memory) {\r\n        return _symbol;\r\n    }\r\n\r\n    function decimals() public view virtual override returns (uint8) {\r\n        return 18;\r\n    }\r\n\r\n    function totalSupply() public view virtual override returns (uint256) {\r\n        return _totalSupply;\r\n    }\r\n\r\n    function balanceOf(address account) public view virtual override returns (uint256) {\r\n        return _balances[account];\r\n    }\r\n\r\n    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\r\n        _transfer(_msgSender(), recipient, amount);\r\n        return true;\r\n    }\r\n\r\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\r\n        return _allowances[owner][spender];\r\n    }\r\n\r\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\r\n        _approve(_msgSender(), spender, amount);\r\n        return true;\r\n    }\r\n\r\n    function transferFrom(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) public virtual override returns (bool) {\r\n        uint256 currentAllowance = _allowances[sender][_msgSender()];\r\n        if (currentAllowance != type(uint256).max) {\r\n            require(currentAllowance >= amount, \"ERC20: transfer amount exceeds allowance\");\r\n            unchecked {\r\n                _approve(sender, _msgSender(), currentAllowance - amount);\r\n            }\r\n        }\r\n\r\n        _transfer(sender, recipient, amount);\r\n\r\n        return true;\r\n    }\r\n\r\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\r\n        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);\r\n        return true;\r\n    }\r\n\r\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\r\n        uint256 currentAllowance = _allowances[_msgSender()][spender];\r\n        require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\r\n        unchecked {\r\n            _approve(_msgSender(), spender, currentAllowance - subtractedValue);\r\n        }\r\n\r\n        return true;\r\n    }\r\n\r\n    function _transfer(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) internal virtual {\r\n        require(sender != address(0), \"ERC20: transfer from the zero address\");\r\n        require(recipient != address(0), \"ERC20: transfer to the zero address\");\r\n\r\n        _beforeTokenTransfer(sender, recipient, amount);\r\n\r\n        uint256 senderBalance = _balances[sender];\r\n        require(senderBalance >= amount, \"ERC20: transfer amount exceeds balance\");\r\n        unchecked {\r\n            _balances[sender] = senderBalance - amount;\r\n        }\r\n        _balances[recipient] += amount;\r\n\r\n        emit Transfer(sender, recipient, amount);\r\n\r\n        _afterTokenTransfer(sender, recipient, amount);\r\n    }\r\n\r\n    function _mint(address account, uint256 amount) internal virtual {\r\n        require(account != address(0), \"ERC20: mint to the zero address\");\r\n\r\n        _beforeTokenTransfer(address(0), account, amount);\r\n\r\n        _totalSupply += amount;\r\n        _balances[account] += amount;\r\n        emit Transfer(address(0), account, amount);\r\n\r\n        _afterTokenTransfer(address(0), account, amount);\r\n    }\r\n\r\n    function _burn(address account, uint256 amount) internal virtual {\r\n        require(account != address(0), \"ERC20: burn from the zero address\");\r\n\r\n        _beforeTokenTransfer(account, address(0), amount);\r\n\r\n        uint256 accountBalance = _balances[account];\r\n        require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\r\n        unchecked {\r\n            _balances[account] = accountBalance - amount;\r\n        }\r\n        _totalSupply -= amount;\r\n\r\n        emit Transfer(account, address(0), amount);\r\n\r\n        _afterTokenTransfer(account, address(0), amount);\r\n    }\r\n\r\n    function _approve(\r\n        address owner,\r\n        address spender,\r\n        uint256 amount\r\n    ) internal virtual {\r\n        require(owner != address(0), \"ERC20: approve from the zero address\");\r\n        require(spender != address(0), \"ERC20: approve to the zero address\");\r\n\r\n        _allowances[owner][spender] = amount;\r\n        emit Approval(owner, spender, amount);\r\n    }\r\n\r\n    function _beforeTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal virtual {}\r\n\r\n    function _afterTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal virtual {}\r\n}\r\nlibrary SafeMath {\r\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            uint256 c = a + b;\r\n            if (c < a) return (false, 0);\r\n            return (true, c);\r\n        }\r\n    }\r\n\r\n    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b > a) return (false, 0);\r\n            return (true, a - b);\r\n        }\r\n    }\r\n\r\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (a == 0) return (true, 0);\r\n            uint256 c = a * b;\r\n            if (c / a != b) return (false, 0);\r\n            return (true, c);\r\n        }\r\n    }\r\n\r\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b == 0) return (false, 0);\r\n            return (true, a / b);\r\n        }\r\n    }\r\n\r\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b == 0) return (false, 0);\r\n            return (true, a % b);\r\n        }\r\n    }\r\n\r\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a + b;\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a - b;\r\n    }\r\n\r\n    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a * b;\r\n    }\r\n\r\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a / b;\r\n    }\r\n\r\n    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a % b;\r\n    }\r\n\r\n    function sub(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b <= a, errorMessage);\r\n            return a - b;\r\n        }\r\n    }\r\n\r\n    function div(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b > 0, errorMessage);\r\n            return a / b;\r\n        }\r\n    }\r\n\r\n    function mod(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b > 0, errorMessage);\r\n            return a % b;\r\n        }\r\n    }\r\n}\r\n\r\nabstract contract Ownable is Context {\r\n    address private _owner;\r\n\r\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r\n\r\n    constructor() {\r\n        _transferOwnership(_msgSender());\r\n    }\r\n\r\n    function owner() public view virtual returns (address) {\r\n        return _owner;\r\n    }\r\n\r\n    modifier onlyOwner() {\r\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\r\n        _;\r\n    }\r\n\r\n    function renounceOwnership() public virtual onlyOwner {\r\n        _transferOwnership(address(0));\r\n    }\r\n\r\n    function transferOwnership(address newOwner) public virtual onlyOwner {\r\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\r\n        _transferOwnership(newOwner);\r\n    }\r\n\r\n    function _transferOwnership(address newOwner) internal virtual {\r\n        address oldOwner = _owner;\r\n        _owner = newOwner;\r\n        emit OwnershipTransferred(oldOwner, newOwner);\r\n    }\r\n}\r\n\r\ninterface IUniswapV2Router01 {\r\n    function factory() external pure returns (address);\r\n    function WETH() external pure returns (address);\r\n    function addLiquidityETH(\r\n        address token,\r\n        uint amountTokenDesired,\r\n        uint amountTokenMin,\r\n        uint amountETHMin,\r\n        address to,\r\n        uint deadline\r\n    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);\r\n}\r\n\r\ninterface IUniswapV2Router02 is IUniswapV2Router01 {\r\n    function swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n        uint amountIn, \r\n        uint amountOutMin, \r\n        address[] calldata path, \r\n        address to, \r\n        uint deadline\r\n    ) external;\r\n}\r\n\r\ncontract GIGGLE is ERC20, Ownable {\r\n    using SafeMath for uint256;\r\n\r\n    IUniswapV2Router02 public immutable uniswapV2Router;\r\n    address public immutable uniswapV2Pair;\r\n\r\n    mapping (address => bool) public isBot;\r\n    bool private _swapping;\r\n    uint256 private _launchTime;\r\n\r\n    address private devWallet;\r\n    \r\n    uint256 public maxTransactionAmount;\r\n    uint256 public swapTokensAtAmount;\r\n    uint256 public maxWallet;\r\n        \r\n    bool public limitsInEffect = true;\r\n    bool public tradingActive = false;\r\n    \r\n    // Anti-bot and anti-whale mappings and variables\r\n    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch\r\n    bool public transferDelayEnabled = true;\r\n    \r\n    uint256 public buyTotalFees;\r\n    uint256 public buyDevFee;\r\n \r\n    uint256 public sellTotalFees;\r\n    uint256 public sellDevFee;\r\n \r\n    uint256 public tokensForDev;\r\n    \r\n    /******************/\r\n\r\n    // exlcude from fees and max transaction amount\r\n    mapping (address => bool) private _isExcludedFromFees;\r\n    mapping (address => bool) public _isExcludedMaxTransactionAmount;\r\n\r\n    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses\r\n    // could be subject to a maximum transfer amount\r\n    mapping (address => bool) public automatedMarketMakerPairs;\r\n\r\n    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);\r\n    \r\n    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);\r\n \r\n    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);\r\n\r\n    constructor() ERC20(\"Giggle Fund\", \"GIGGLE\") {\r\n        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);\r\n        \r\n        excludeFromMaxTransaction(address(_uniswapV2Router), true);\r\n        uniswapV2Router = _uniswapV2Router;\r\n        \r\n        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());\r\n        excludeFromMaxTransaction(address(uniswapV2Pair), true);\r\n        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);\r\n\r\n\r\n\r\n        uint256 _buyDevFee = 5;\r\n \r\n        uint256 _sellDevFee = 5;\r\n        \r\n        uint256 totalSupply = 1 * 1e6 * 1e18;\r\n        \r\n        maxTransactionAmount = totalSupply * 2 / 100; // 2% maxTransactionAmountTxn\r\n        maxWallet = totalSupply * 2 / 100; // 1% maxWallet\r\n        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet\r\n\r\n        // Set Fees\r\n        buyDevFee = _buyDevFee;\r\n        buyTotalFees =  buyDevFee;\r\n\r\n        sellDevFee = _sellDevFee;\r\n        sellTotalFees = sellDevFee;\r\n\r\n        // Set Fee Wallet\r\n        devWallet = address(0xC7f501D25Ea088aeFCa8B4b3ebD936aAe12bF4A4); // set as dev wallet\r\n\r\n\r\n        // exclude from paying fees or having max transaction amount\r\n        excludeFromFees(owner(), true);\r\n        excludeFromFees(address(this), true);\r\n        excludeFromFees(address(0xdead), true);\r\n        \r\n        excludeFromMaxTransaction(owner(), true);\r\n        excludeFromMaxTransaction(address(this), true);\r\n        excludeFromMaxTransaction(address(0xdead), true);\r\n        \r\n        /*\r\n            _mint is an internal function in ERC20.sol that is only called here,\r\n            and CANNOT be called ever again\r\n        */\r\n        _mint(msg.sender, totalSupply);\r\n    }\r\n\r\n        receive() external payable {\r\n \r\n    }\r\n \r\n\r\n    // once enabled, can never be turned off\r\n    function enableTrading() external onlyOwner {\r\n        tradingActive = true;\r\n        _launchTime = block.timestamp.add(2);\r\n    }\r\n   \r\n    // remove limits after token is stable\r\n    function removeLimits() external onlyOwner returns (bool) {\r\n        limitsInEffect = false;\r\n        return true;\r\n    }\r\n    \r\n    // disable Transfer delay - cannot be reenabled\r\n    function disableTransferDelay() external onlyOwner returns (bool) {\r\n        transferDelayEnabled = false;\r\n        return true;\r\n    }\r\n    \r\n     // change the minimum amount of tokens to sell from fees\r\n    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {\r\n  \t    require(newAmount >= totalSupply() * 1 / 100000, \"Swap amount cannot be lower than 0.001% total supply.\");\r\n  \t    require(newAmount <= totalSupply() * 5 / 1000, \"Swap amount cannot be higher than 0.5% total supply.\");\r\n  \t    swapTokensAtAmount = newAmount;\r\n  \t    return true;\r\n  \t}\r\n    \r\n    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {\r\n        require(newNum >= (totalSupply() * 1 / 1000) / 1e18, \"Cannot set maxTransactionAmount lower than 0.1%\");\r\n        maxTransactionAmount = newNum * 1e18;\r\n    }\r\n\r\n    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {\r\n        require(newNum >= (totalSupply() * 5 / 1000)/1e18, \"Cannot set maxWallet lower than 0.5%\");\r\n        maxWallet = newNum * 1e18;\r\n    }\r\n    \r\n    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {\r\n        _isExcludedMaxTransactionAmount[updAds] = isEx;\r\n    }\r\n    \r\n    function updateBuyFees(uint256 _devFee) external onlyOwner {\r\n        buyDevFee = _devFee;\r\n        buyTotalFees = buyDevFee;\r\n        require(buyTotalFees <= 10, \"Must keep fees at 10% or less\");\r\n    }\r\n \r\n    function updateSellFees(uint256 _devFee) external onlyOwner {\r\n        sellDevFee = _devFee;\r\n        sellTotalFees = sellDevFee;\r\n        require(sellTotalFees <= 25, \"Must keep fees at 15% or less\");\r\n    }\r\n\r\n    function excludeFromFees(address account, bool excluded) public onlyOwner {\r\n        _isExcludedFromFees[account] = excluded;\r\n    }\r\n\r\n    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {\r\n        require(pair != uniswapV2Pair, \"The pair cannot be removed from automatedMarketMakerPairs\");\r\n\r\n        _setAutomatedMarketMakerPair(pair, value);\r\n    }\r\n\r\n    // Variable Block - once enabled, can never be turned off \r\n    function enableTrading(uint256 Bblock) external onlyOwner {\r\n        tradingActive = true;\r\n        _launchTime = block.timestamp.add(Bblock);\r\n    }\r\n\r\n    function _setAutomatedMarketMakerPair(address pair, bool value) private {\r\n        automatedMarketMakerPairs[pair] = value;\r\n    }\r\n    \r\n\r\n    function updateDevWallet(address newWallet) external onlyOwner {\r\n        emit devWalletUpdated(newWallet, devWallet);\r\n        devWallet = newWallet;\r\n    }\r\n \r\n\r\n    function isExcludedFromFees(address account) public view returns(bool) {\r\n        return _isExcludedFromFees[account];\r\n    }\r\n    \r\n    function addBots(address[] memory bots) public onlyOwner() {\r\n        for (uint i = 0; i < bots.length; i++) {\r\n            if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) {\r\n                isBot[bots[i]] = true;\r\n            }\r\n        }\r\n    }\r\n    \r\n    function removeBots(address[] memory bots) public onlyOwner() {\r\n        for (uint i = 0; i < bots.length; i++) {\r\n            isBot[bots[i]] = false;\r\n        }\r\n    }\r\n\r\n    function _transfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal override {\r\n        require(from != address(0), \"ERC20: transfer from the zero address\");\r\n        require(to != address(0), \"ERC20: transfer to the zero address\");\r\n        require(!isBot[from], \"Your address has been marked as a bot/sniper, you are unable to transfer or swap.\");\r\n        \r\n         if (amount == 0) {\r\n            super._transfer(from, to, 0);\r\n            return;\r\n        }\r\n        \r\n        if (block.timestamp < _launchTime) isBot[to] = true;\r\n        \r\n        if (limitsInEffect) {\r\n            if (\r\n                from != owner() &&\r\n                to != owner() &&\r\n                to != address(0) &&\r\n                to != address(0xdead) &&\r\n                !_swapping\r\n            ) {\r\n                if (!tradingActive) {\r\n                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], \"Trading is not active.\");\r\n                }\r\n\r\n                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  \r\n                if (transferDelayEnabled){\r\n                    if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){\r\n                        require(_holderLastTransferTimestamp[tx.origin] < block.number, \"_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.\");\r\n                        _holderLastTransferTimestamp[tx.origin] = block.number;\r\n                    }\r\n                }\r\n                 \r\n                // On buy\r\n                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {\r\n                    require(amount <= maxTransactionAmount, \"Buy transfer amount exceeds the maxTransactionAmount.\");\r\n                    require(amount + balanceOf(to) <= maxWallet, \"Max wallet exceeded\");\r\n                }\r\n                \r\n                // On sell\r\n                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {\r\n                    require(amount <= maxTransactionAmount, \"Sell transfer amount exceeds the maxTransactionAmount.\");\r\n                }\r\n                else if (!_isExcludedMaxTransactionAmount[to]){\r\n                    require(amount + balanceOf(to) <= maxWallet, \"Max wallet exceeded\");\r\n                }\r\n            }\r\n        }\r\n        \r\n\t\tuint256 contractTokenBalance = balanceOf(address(this));\r\n        bool canSwap = contractTokenBalance >= swapTokensAtAmount;\r\n\r\n        if (\r\n            canSwap &&\r\n            !_swapping &&\r\n            !automatedMarketMakerPairs[from] &&\r\n            !_isExcludedFromFees[from] &&\r\n            !_isExcludedFromFees[to]\r\n        ) {\r\n            _swapping = true;\r\n            swapBack();\r\n            _swapping = false;\r\n        }\r\n\r\n        bool takeFee = !_swapping;\r\n\r\n        // if any account belongs to _isExcludedFromFee account then remove the fee\r\n        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false;\r\n        \r\n        \r\n        uint256 fees = 0;\r\n        // Only take fees on buys/sells, do not take on wallet transfers\r\n        if (takeFee) {\r\n            // On sell\r\n            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){\r\n                fees = amount.mul(sellTotalFees).div(100);\r\n                tokensForDev += fees * sellDevFee / sellTotalFees;\r\n            }\r\n            // on buy\r\n            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {\r\n                fees = amount.mul(buyTotalFees).div(100);\r\n                tokensForDev += fees * buyDevFee / buyTotalFees;\r\n            }\r\n\r\n            if (fees > 0) {\r\n                super._transfer(from, address(this), fees);\r\n            }\r\n        \t\r\n        \tamount -= fees;\r\n        }\r\n\r\n        super._transfer(from, to, amount);\r\n    }\r\n\r\n    function _swapTokensForEth(uint256 tokenAmount) private {\r\n        // generate the uniswap pair path of token -> weth\r\n        address[] memory path = new address[](2);\r\n        path[0] = address(this);\r\n        path[1] = uniswapV2Router.WETH();\r\n\r\n        _approve(address(this), address(uniswapV2Router), tokenAmount);\r\n\r\n        // make the swap\r\n        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n            tokenAmount,\r\n            0, // accept any amount of ETH\r\n            path,\r\n            address(this),\r\n            block.timestamp\r\n        );\r\n    }\r\n    \r\n    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {\r\n        // approve token transfer to cover all possible scenarios\r\n        _approve(address(this), address(uniswapV2Router), tokenAmount);\r\n\r\n        // add the liquidity\r\n        uniswapV2Router.addLiquidityETH{value: ethAmount}(\r\n            address(this),\r\n            tokenAmount,\r\n            0, // slippage is unavoidable\r\n            0, // slippage is unavoidable\r\n            owner(),\r\n            block.timestamp\r\n        );\r\n    }\r\n\r\n    function swapBack() private {\r\n        uint256 contractBalance = balanceOf(address(this));\r\n        uint256 totalTokensToSwap = tokensForDev;\r\n        bool success;\r\n \r\n        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}\r\n \r\n        if(contractBalance > swapTokensAtAmount * 20){\r\n          contractBalance = swapTokensAtAmount * 20;\r\n        }\r\n \r\n \r\n        _swapTokensForEth(totalTokensToSwap); \r\n \r\n        uint256 ethBalance = address(this).balance;\r\n \r\n \r\n        tokensForDev = 0;\r\n \r\n        (success,) = address(devWallet).call{value: ethBalance}(\"\");\r\n \r\n\r\n    }\r\n}"}},"compilation":{"language":"Solidity","compiler":"solc","compilerVersion":"0.8.11+commit.d7f03943","compilerSettings":{"libraries":{},"optimizer":{"runs":200,"enabled":false}},"name":"GIGGLE","fullyQualifiedName":"GIGGLE.sol:GIGGLE"},"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"OwnershipTransferred","type":"event","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"SwapAndLiquify","type":"event","inputs":[{"name":"tokensSwapped","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"ethReceived","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokensIntoLiquidity","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"devWalletUpdated","type":"event","inputs":[{"name":"newWallet","type":"address","indexed":true,"internalType":"address"},{"name":"oldWallet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"marketingWalletUpdated","type":"event","inputs":[{"name":"newWallet","type":"address","indexed":true,"internalType":"address"},{"name":"oldWallet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"_isExcludedMaxTransactionAmount","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"addBots","type":"function","inputs":[{"name":"bots","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"allowance","type":"function","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"automatedMarketMakerPairs","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"balanceOf","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"buyDevFee","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"buyTotalFees","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"decimals","type":"function","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"name":"decreaseAllowance","type":"function","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"disableTransferDelay","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"enableTrading","type":"function","inputs":[{"name":"Bblock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"enableTrading","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"excludeFromFees","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"excluded","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"excludeFromMaxTransaction","type":"function","inputs":[{"name":"updAds","type":"address","internalType":"address"},{"name":"isEx","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"increaseAllowance","type":"function","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"isBot","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"isExcludedFromFees","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"limitsInEffect","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"maxTransactionAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"maxWallet","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"name","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"owner","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"removeBots","type":"function","inputs":[{"name":"bots","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"removeLimits","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"renounceOwnership","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"sellDevFee","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"sellTotalFees","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"setAutomatedMarketMakerPair","type":"function","inputs":[{"name":"pair","type":"address","internalType":"address"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"swapTokensAtAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"tokensForDev","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"tradingActive","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"transfer","type":"function","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"transferDelayEnabled","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"transferFrom","type":"function","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"transferOwnership","type":"function","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"uniswapV2Pair","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"uniswapV2Router","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Router02"}],"stateMutability":"view"},{"name":"updateBuyFees","type":"function","inputs":[{"name":"_devFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateDevWallet","type":"function","inputs":[{"name":"newWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateMaxTxnAmount","type":"function","inputs":[{"name":"newNum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateMaxWalletAmount","type":"function","inputs":[{"name":"newNum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateSellFees","type":"function","inputs":[{"name":"_devFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateSwapTokensAtAmount","type":"function","inputs":[{"name":"newAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"}],"metadata":{"compiler":{"version":"0.8.11+commit.d7f03943"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Bblock","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"GIGGLE.sol":"GIGGLE"},"evmVersion":"london","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"GIGGLE.sol":{"keccak256":"0xc4ac8a49b5a0e79ecc30280d94f60b36c672ec55103a53b75d5267a43db440a2","license":"MIT","urls":["bzz-raw://ed3f53dc3603167551f43a4ccc7d6f1140a5b6d94fb601920c6ded2dd65c9733","dweb:/ipfs/QmU9vbvuGmucHniaXmu9AfnDgESioZoqbx2yet9hBQqGqw"]}},"version":1},"storageLayout":{"types":{"t_bool":{"label":"bool","encoding":"inplace","numberOfBytes":"1"},"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_string_storage":{"label":"string","encoding":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"key":"t_address","label":"mapping(address => bool)","value":"t_bool","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"key":"t_address","label":"mapping(address => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"key":"t_address","label":"mapping(address => mapping(address => uint256))","value":"t_mapping(t_address,t_uint256)","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_mapping(t_address,t_uint256)","astId":243,"label":"_balances","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))","astId":249,"label":"_allowances","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"2","type":"t_uint256","astId":251,"label":"_totalSupply","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"3","type":"t_string_storage","astId":253,"label":"_name","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"4","type":"t_string_storage","astId":255,"label":"_symbol","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"5","type":"t_address","astId":1064,"label":"_owner","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"6","type":"t_mapping(t_address,t_bool)","astId":1220,"label":"isBot","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"7","type":"t_bool","astId":1222,"label":"_swapping","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"8","type":"t_uint256","astId":1224,"label":"_launchTime","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"9","type":"t_address","astId":1226,"label":"devWallet","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"10","type":"t_uint256","astId":1228,"label":"maxTransactionAmount","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"11","type":"t_uint256","astId":1230,"label":"swapTokensAtAmount","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"12","type":"t_uint256","astId":1232,"label":"maxWallet","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"13","type":"t_bool","astId":1235,"label":"limitsInEffect","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"13","type":"t_bool","astId":1238,"label":"tradingActive","offset":1,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"14","type":"t_mapping(t_address,t_uint256)","astId":1242,"label":"_holderLastTransferTimestamp","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"15","type":"t_bool","astId":1245,"label":"transferDelayEnabled","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"16","type":"t_uint256","astId":1247,"label":"buyTotalFees","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"17","type":"t_uint256","astId":1249,"label":"buyDevFee","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"18","type":"t_uint256","astId":1251,"label":"sellTotalFees","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"19","type":"t_uint256","astId":1253,"label":"sellDevFee","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"20","type":"t_uint256","astId":1255,"label":"tokensForDev","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"21","type":"t_mapping(t_address,t_bool)","astId":1259,"label":"_isExcludedFromFees","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"22","type":"t_mapping(t_address,t_bool)","astId":1263,"label":"_isExcludedMaxTransactionAmount","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"23","type":"t_mapping(t_address,t_bool)","astId":1267,"label":"automatedMarketMakerPairs","offset":0,"contract":"GIGGLE.sol:GIGGLE"}]},"transientStorageLayout":null,"userdoc":{"kind":"user","methods":{},"version":1},"devdoc":{"kind":"dev","methods":{},"version":1},"sourceIds":{"GIGGLE.sol":{"id":0}},"additionalInput":null,"stdJsonInput":{"sources":{"GIGGLE.sol":{"content":"// SPDX-License-Identifier: MIT\r\n\r\n\r\n\r\npragma solidity 0.8.11;\r\n\r\nabstract contract Context {\r\n    function _msgSender() internal view virtual returns (address) {\r\n        return msg.sender;\r\n    }\r\n\r\n    function _msgData() internal view virtual returns (bytes calldata) {\r\n        return msg.data;\r\n    }\r\n}\r\n\r\ninterface IUniswapV2Pair {\r\n    event Approval(address indexed owner, address indexed spender, uint value);\r\n    event Transfer(address indexed from, address indexed to, uint value);\r\n\r\n    function name() external pure returns (string memory);\r\n    function symbol() external pure returns (string memory);\r\n    function decimals() external pure returns (uint8);\r\n    function totalSupply() external view returns (uint);\r\n    function balanceOf(address owner) external view returns (uint);\r\n    function allowance(address owner, address spender) external view returns (uint);\r\n\r\n    function approve(address spender, uint value) external returns (bool);\r\n    function transfer(address to, uint value) external returns (bool);\r\n    function transferFrom(address from, address to, uint value) external returns (bool);\r\n\r\n    event Swap(\r\n        address indexed sender,\r\n        uint amount0In,\r\n        uint amount1In,\r\n        uint amount0Out,\r\n        uint amount1Out,\r\n        address indexed to\r\n    );\r\n    event Sync(uint112 reserve0, uint112 reserve1);\r\n\r\n    function factory() external view returns (address);\r\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\r\n}\r\n\r\ninterface IUniswapV2Factory {\r\n    function createPair(address tokenA, address tokenB) external returns (address pair);\r\n}\r\n\r\ninterface IERC20 {\r\n    function totalSupply() external view returns (uint256);\r\n    function balanceOf(address account) external view returns (uint256);\r\n    function transfer(address recipient, uint256 amount) external returns (bool);\r\n    function allowance(address owner, address spender) external view returns (uint256);\r\n    function approve(address spender, uint256 amount) external returns (bool);\r\n    function transferFrom(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) external returns (bool);\r\n    \r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n\r\ninterface IERC20Metadata is IERC20 {\r\n    function name() external view returns (string memory);\r\n    function symbol() external view returns (string memory);\r\n    function decimals() external view returns (uint8);\r\n}\r\n\r\n\r\ncontract ERC20 is Context, IERC20, IERC20Metadata {\r\n    mapping(address => uint256) private _balances;\r\n\r\n    mapping(address => mapping(address => uint256)) private _allowances;\r\n\r\n    uint256 private _totalSupply;\r\n\r\n    string private _name;\r\n    string private _symbol;\r\n\r\n    constructor(string memory name_, string memory symbol_) {\r\n        _name = name_;\r\n        _symbol = symbol_;\r\n    }\r\n\r\n    function name() public view virtual override returns (string memory) {\r\n        return _name;\r\n    }\r\n\r\n    function symbol() public view virtual override returns (string memory) {\r\n        return _symbol;\r\n    }\r\n\r\n    function decimals() public view virtual override returns (uint8) {\r\n        return 18;\r\n    }\r\n\r\n    function totalSupply() public view virtual override returns (uint256) {\r\n        return _totalSupply;\r\n    }\r\n\r\n    function balanceOf(address account) public view virtual override returns (uint256) {\r\n        return _balances[account];\r\n    }\r\n\r\n    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\r\n        _transfer(_msgSender(), recipient, amount);\r\n        return true;\r\n    }\r\n\r\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\r\n        return _allowances[owner][spender];\r\n    }\r\n\r\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\r\n        _approve(_msgSender(), spender, amount);\r\n        return true;\r\n    }\r\n\r\n    function transferFrom(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) public virtual override returns (bool) {\r\n        uint256 currentAllowance = _allowances[sender][_msgSender()];\r\n        if (currentAllowance != type(uint256).max) {\r\n            require(currentAllowance >= amount, \"ERC20: transfer amount exceeds allowance\");\r\n            unchecked {\r\n                _approve(sender, _msgSender(), currentAllowance - amount);\r\n            }\r\n        }\r\n\r\n        _transfer(sender, recipient, amount);\r\n\r\n        return true;\r\n    }\r\n\r\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\r\n        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);\r\n        return true;\r\n    }\r\n\r\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\r\n        uint256 currentAllowance = _allowances[_msgSender()][spender];\r\n        require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\r\n        unchecked {\r\n            _approve(_msgSender(), spender, currentAllowance - subtractedValue);\r\n        }\r\n\r\n        return true;\r\n    }\r\n\r\n    function _transfer(\r\n        address sender,\r\n        address recipient,\r\n        uint256 amount\r\n    ) internal virtual {\r\n        require(sender != address(0), \"ERC20: transfer from the zero address\");\r\n        require(recipient != address(0), \"ERC20: transfer to the zero address\");\r\n\r\n        _beforeTokenTransfer(sender, recipient, amount);\r\n\r\n        uint256 senderBalance = _balances[sender];\r\n        require(senderBalance >= amount, \"ERC20: transfer amount exceeds balance\");\r\n        unchecked {\r\n            _balances[sender] = senderBalance - amount;\r\n        }\r\n        _balances[recipient] += amount;\r\n\r\n        emit Transfer(sender, recipient, amount);\r\n\r\n        _afterTokenTransfer(sender, recipient, amount);\r\n    }\r\n\r\n    function _mint(address account, uint256 amount) internal virtual {\r\n        require(account != address(0), \"ERC20: mint to the zero address\");\r\n\r\n        _beforeTokenTransfer(address(0), account, amount);\r\n\r\n        _totalSupply += amount;\r\n        _balances[account] += amount;\r\n        emit Transfer(address(0), account, amount);\r\n\r\n        _afterTokenTransfer(address(0), account, amount);\r\n    }\r\n\r\n    function _burn(address account, uint256 amount) internal virtual {\r\n        require(account != address(0), \"ERC20: burn from the zero address\");\r\n\r\n        _beforeTokenTransfer(account, address(0), amount);\r\n\r\n        uint256 accountBalance = _balances[account];\r\n        require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\r\n        unchecked {\r\n            _balances[account] = accountBalance - amount;\r\n        }\r\n        _totalSupply -= amount;\r\n\r\n        emit Transfer(account, address(0), amount);\r\n\r\n        _afterTokenTransfer(account, address(0), amount);\r\n    }\r\n\r\n    function _approve(\r\n        address owner,\r\n        address spender,\r\n        uint256 amount\r\n    ) internal virtual {\r\n        require(owner != address(0), \"ERC20: approve from the zero address\");\r\n        require(spender != address(0), \"ERC20: approve to the zero address\");\r\n\r\n        _allowances[owner][spender] = amount;\r\n        emit Approval(owner, spender, amount);\r\n    }\r\n\r\n    function _beforeTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal virtual {}\r\n\r\n    function _afterTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal virtual {}\r\n}\r\nlibrary SafeMath {\r\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            uint256 c = a + b;\r\n            if (c < a) return (false, 0);\r\n            return (true, c);\r\n        }\r\n    }\r\n\r\n    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b > a) return (false, 0);\r\n            return (true, a - b);\r\n        }\r\n    }\r\n\r\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (a == 0) return (true, 0);\r\n            uint256 c = a * b;\r\n            if (c / a != b) return (false, 0);\r\n            return (true, c);\r\n        }\r\n    }\r\n\r\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b == 0) return (false, 0);\r\n            return (true, a / b);\r\n        }\r\n    }\r\n\r\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n        unchecked {\r\n            if (b == 0) return (false, 0);\r\n            return (true, a % b);\r\n        }\r\n    }\r\n\r\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a + b;\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a - b;\r\n    }\r\n\r\n    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a * b;\r\n    }\r\n\r\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a / b;\r\n    }\r\n\r\n    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return a % b;\r\n    }\r\n\r\n    function sub(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b <= a, errorMessage);\r\n            return a - b;\r\n        }\r\n    }\r\n\r\n    function div(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b > 0, errorMessage);\r\n            return a / b;\r\n        }\r\n    }\r\n\r\n    function mod(uint256 a,uint256 b,string memory errorMessage) internal pure returns (uint256) {\r\n        unchecked {\r\n            require(b > 0, errorMessage);\r\n            return a % b;\r\n        }\r\n    }\r\n}\r\n\r\nabstract contract Ownable is Context {\r\n    address private _owner;\r\n\r\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r\n\r\n    constructor() {\r\n        _transferOwnership(_msgSender());\r\n    }\r\n\r\n    function owner() public view virtual returns (address) {\r\n        return _owner;\r\n    }\r\n\r\n    modifier onlyOwner() {\r\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\r\n        _;\r\n    }\r\n\r\n    function renounceOwnership() public virtual onlyOwner {\r\n        _transferOwnership(address(0));\r\n    }\r\n\r\n    function transferOwnership(address newOwner) public virtual onlyOwner {\r\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\r\n        _transferOwnership(newOwner);\r\n    }\r\n\r\n    function _transferOwnership(address newOwner) internal virtual {\r\n        address oldOwner = _owner;\r\n        _owner = newOwner;\r\n        emit OwnershipTransferred(oldOwner, newOwner);\r\n    }\r\n}\r\n\r\ninterface IUniswapV2Router01 {\r\n    function factory() external pure returns (address);\r\n    function WETH() external pure returns (address);\r\n    function addLiquidityETH(\r\n        address token,\r\n        uint amountTokenDesired,\r\n        uint amountTokenMin,\r\n        uint amountETHMin,\r\n        address to,\r\n        uint deadline\r\n    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);\r\n}\r\n\r\ninterface IUniswapV2Router02 is IUniswapV2Router01 {\r\n    function swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n        uint amountIn, \r\n        uint amountOutMin, \r\n        address[] calldata path, \r\n        address to, \r\n        uint deadline\r\n    ) external;\r\n}\r\n\r\ncontract GIGGLE is ERC20, Ownable {\r\n    using SafeMath for uint256;\r\n\r\n    IUniswapV2Router02 public immutable uniswapV2Router;\r\n    address public immutable uniswapV2Pair;\r\n\r\n    mapping (address => bool) public isBot;\r\n    bool private _swapping;\r\n    uint256 private _launchTime;\r\n\r\n    address private devWallet;\r\n    \r\n    uint256 public maxTransactionAmount;\r\n    uint256 public swapTokensAtAmount;\r\n    uint256 public maxWallet;\r\n        \r\n    bool public limitsInEffect = true;\r\n    bool public tradingActive = false;\r\n    \r\n    // Anti-bot and anti-whale mappings and variables\r\n    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch\r\n    bool public transferDelayEnabled = true;\r\n    \r\n    uint256 public buyTotalFees;\r\n    uint256 public buyDevFee;\r\n \r\n    uint256 public sellTotalFees;\r\n    uint256 public sellDevFee;\r\n \r\n    uint256 public tokensForDev;\r\n    \r\n    /******************/\r\n\r\n    // exlcude from fees and max transaction amount\r\n    mapping (address => bool) private _isExcludedFromFees;\r\n    mapping (address => bool) public _isExcludedMaxTransactionAmount;\r\n\r\n    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses\r\n    // could be subject to a maximum transfer amount\r\n    mapping (address => bool) public automatedMarketMakerPairs;\r\n\r\n    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);\r\n    \r\n    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);\r\n \r\n    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);\r\n\r\n    constructor() ERC20(\"Giggle Fund\", \"GIGGLE\") {\r\n        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);\r\n        \r\n        excludeFromMaxTransaction(address(_uniswapV2Router), true);\r\n        uniswapV2Router = _uniswapV2Router;\r\n        \r\n        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());\r\n        excludeFromMaxTransaction(address(uniswapV2Pair), true);\r\n        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);\r\n\r\n\r\n\r\n        uint256 _buyDevFee = 5;\r\n \r\n        uint256 _sellDevFee = 5;\r\n        \r\n        uint256 totalSupply = 1 * 1e6 * 1e18;\r\n        \r\n        maxTransactionAmount = totalSupply * 2 / 100; // 2% maxTransactionAmountTxn\r\n        maxWallet = totalSupply * 2 / 100; // 1% maxWallet\r\n        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet\r\n\r\n        // Set Fees\r\n        buyDevFee = _buyDevFee;\r\n        buyTotalFees =  buyDevFee;\r\n\r\n        sellDevFee = _sellDevFee;\r\n        sellTotalFees = sellDevFee;\r\n\r\n        // Set Fee Wallet\r\n        devWallet = address(0xC7f501D25Ea088aeFCa8B4b3ebD936aAe12bF4A4); // set as dev wallet\r\n\r\n\r\n        // exclude from paying fees or having max transaction amount\r\n        excludeFromFees(owner(), true);\r\n        excludeFromFees(address(this), true);\r\n        excludeFromFees(address(0xdead), true);\r\n        \r\n        excludeFromMaxTransaction(owner(), true);\r\n        excludeFromMaxTransaction(address(this), true);\r\n        excludeFromMaxTransaction(address(0xdead), true);\r\n        \r\n        /*\r\n            _mint is an internal function in ERC20.sol that is only called here,\r\n            and CANNOT be called ever again\r\n        */\r\n        _mint(msg.sender, totalSupply);\r\n    }\r\n\r\n        receive() external payable {\r\n \r\n    }\r\n \r\n\r\n    // once enabled, can never be turned off\r\n    function enableTrading() external onlyOwner {\r\n        tradingActive = true;\r\n        _launchTime = block.timestamp.add(2);\r\n    }\r\n   \r\n    // remove limits after token is stable\r\n    function removeLimits() external onlyOwner returns (bool) {\r\n        limitsInEffect = false;\r\n        return true;\r\n    }\r\n    \r\n    // disable Transfer delay - cannot be reenabled\r\n    function disableTransferDelay() external onlyOwner returns (bool) {\r\n        transferDelayEnabled = false;\r\n        return true;\r\n    }\r\n    \r\n     // change the minimum amount of tokens to sell from fees\r\n    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {\r\n  \t    require(newAmount >= totalSupply() * 1 / 100000, \"Swap amount cannot be lower than 0.001% total supply.\");\r\n  \t    require(newAmount <= totalSupply() * 5 / 1000, \"Swap amount cannot be higher than 0.5% total supply.\");\r\n  \t    swapTokensAtAmount = newAmount;\r\n  \t    return true;\r\n  \t}\r\n    \r\n    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {\r\n        require(newNum >= (totalSupply() * 1 / 1000) / 1e18, \"Cannot set maxTransactionAmount lower than 0.1%\");\r\n        maxTransactionAmount = newNum * 1e18;\r\n    }\r\n\r\n    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {\r\n        require(newNum >= (totalSupply() * 5 / 1000)/1e18, \"Cannot set maxWallet lower than 0.5%\");\r\n        maxWallet = newNum * 1e18;\r\n    }\r\n    \r\n    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {\r\n        _isExcludedMaxTransactionAmount[updAds] = isEx;\r\n    }\r\n    \r\n    function updateBuyFees(uint256 _devFee) external onlyOwner {\r\n        buyDevFee = _devFee;\r\n        buyTotalFees = buyDevFee;\r\n        require(buyTotalFees <= 10, \"Must keep fees at 10% or less\");\r\n    }\r\n \r\n    function updateSellFees(uint256 _devFee) external onlyOwner {\r\n        sellDevFee = _devFee;\r\n        sellTotalFees = sellDevFee;\r\n        require(sellTotalFees <= 25, \"Must keep fees at 15% or less\");\r\n    }\r\n\r\n    function excludeFromFees(address account, bool excluded) public onlyOwner {\r\n        _isExcludedFromFees[account] = excluded;\r\n    }\r\n\r\n    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {\r\n        require(pair != uniswapV2Pair, \"The pair cannot be removed from automatedMarketMakerPairs\");\r\n\r\n        _setAutomatedMarketMakerPair(pair, value);\r\n    }\r\n\r\n    // Variable Block - once enabled, can never be turned off \r\n    function enableTrading(uint256 Bblock) external onlyOwner {\r\n        tradingActive = true;\r\n        _launchTime = block.timestamp.add(Bblock);\r\n    }\r\n\r\n    function _setAutomatedMarketMakerPair(address pair, bool value) private {\r\n        automatedMarketMakerPairs[pair] = value;\r\n    }\r\n    \r\n\r\n    function updateDevWallet(address newWallet) external onlyOwner {\r\n        emit devWalletUpdated(newWallet, devWallet);\r\n        devWallet = newWallet;\r\n    }\r\n \r\n\r\n    function isExcludedFromFees(address account) public view returns(bool) {\r\n        return _isExcludedFromFees[account];\r\n    }\r\n    \r\n    function addBots(address[] memory bots) public onlyOwner() {\r\n        for (uint i = 0; i < bots.length; i++) {\r\n            if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) {\r\n                isBot[bots[i]] = true;\r\n            }\r\n        }\r\n    }\r\n    \r\n    function removeBots(address[] memory bots) public onlyOwner() {\r\n        for (uint i = 0; i < bots.length; i++) {\r\n            isBot[bots[i]] = false;\r\n        }\r\n    }\r\n\r\n    function _transfer(\r\n        address from,\r\n        address to,\r\n        uint256 amount\r\n    ) internal override {\r\n        require(from != address(0), \"ERC20: transfer from the zero address\");\r\n        require(to != address(0), \"ERC20: transfer to the zero address\");\r\n        require(!isBot[from], \"Your address has been marked as a bot/sniper, you are unable to transfer or swap.\");\r\n        \r\n         if (amount == 0) {\r\n            super._transfer(from, to, 0);\r\n            return;\r\n        }\r\n        \r\n        if (block.timestamp < _launchTime) isBot[to] = true;\r\n        \r\n        if (limitsInEffect) {\r\n            if (\r\n                from != owner() &&\r\n                to != owner() &&\r\n                to != address(0) &&\r\n                to != address(0xdead) &&\r\n                !_swapping\r\n            ) {\r\n                if (!tradingActive) {\r\n                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], \"Trading is not active.\");\r\n                }\r\n\r\n                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  \r\n                if (transferDelayEnabled){\r\n                    if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){\r\n                        require(_holderLastTransferTimestamp[tx.origin] < block.number, \"_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.\");\r\n                        _holderLastTransferTimestamp[tx.origin] = block.number;\r\n                    }\r\n                }\r\n                 \r\n                // On buy\r\n                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {\r\n                    require(amount <= maxTransactionAmount, \"Buy transfer amount exceeds the maxTransactionAmount.\");\r\n                    require(amount + balanceOf(to) <= maxWallet, \"Max wallet exceeded\");\r\n                }\r\n                \r\n                // On sell\r\n                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {\r\n                    require(amount <= maxTransactionAmount, \"Sell transfer amount exceeds the maxTransactionAmount.\");\r\n                }\r\n                else if (!_isExcludedMaxTransactionAmount[to]){\r\n                    require(amount + balanceOf(to) <= maxWallet, \"Max wallet exceeded\");\r\n                }\r\n            }\r\n        }\r\n        \r\n\t\tuint256 contractTokenBalance = balanceOf(address(this));\r\n        bool canSwap = contractTokenBalance >= swapTokensAtAmount;\r\n\r\n        if (\r\n            canSwap &&\r\n            !_swapping &&\r\n            !automatedMarketMakerPairs[from] &&\r\n            !_isExcludedFromFees[from] &&\r\n            !_isExcludedFromFees[to]\r\n        ) {\r\n            _swapping = true;\r\n            swapBack();\r\n            _swapping = false;\r\n        }\r\n\r\n        bool takeFee = !_swapping;\r\n\r\n        // if any account belongs to _isExcludedFromFee account then remove the fee\r\n        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false;\r\n        \r\n        \r\n        uint256 fees = 0;\r\n        // Only take fees on buys/sells, do not take on wallet transfers\r\n        if (takeFee) {\r\n            // On sell\r\n            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){\r\n                fees = amount.mul(sellTotalFees).div(100);\r\n                tokensForDev += fees * sellDevFee / sellTotalFees;\r\n            }\r\n            // on buy\r\n            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {\r\n                fees = amount.mul(buyTotalFees).div(100);\r\n                tokensForDev += fees * buyDevFee / buyTotalFees;\r\n            }\r\n\r\n            if (fees > 0) {\r\n                super._transfer(from, address(this), fees);\r\n            }\r\n        \t\r\n        \tamount -= fees;\r\n        }\r\n\r\n        super._transfer(from, to, amount);\r\n    }\r\n\r\n    function _swapTokensForEth(uint256 tokenAmount) private {\r\n        // generate the uniswap pair path of token -> weth\r\n        address[] memory path = new address[](2);\r\n        path[0] = address(this);\r\n        path[1] = uniswapV2Router.WETH();\r\n\r\n        _approve(address(this), address(uniswapV2Router), tokenAmount);\r\n\r\n        // make the swap\r\n        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n            tokenAmount,\r\n            0, // accept any amount of ETH\r\n            path,\r\n            address(this),\r\n            block.timestamp\r\n        );\r\n    }\r\n    \r\n    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {\r\n        // approve token transfer to cover all possible scenarios\r\n        _approve(address(this), address(uniswapV2Router), tokenAmount);\r\n\r\n        // add the liquidity\r\n        uniswapV2Router.addLiquidityETH{value: ethAmount}(\r\n            address(this),\r\n            tokenAmount,\r\n            0, // slippage is unavoidable\r\n            0, // slippage is unavoidable\r\n            owner(),\r\n            block.timestamp\r\n        );\r\n    }\r\n\r\n    function swapBack() private {\r\n        uint256 contractBalance = balanceOf(address(this));\r\n        uint256 totalTokensToSwap = tokensForDev;\r\n        bool success;\r\n \r\n        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}\r\n \r\n        if(contractBalance > swapTokensAtAmount * 20){\r\n          contractBalance = swapTokensAtAmount * 20;\r\n        }\r\n \r\n \r\n        _swapTokensForEth(totalTokensToSwap); \r\n \r\n        uint256 ethBalance = address(this).balance;\r\n \r\n \r\n        tokensForDev = 0;\r\n \r\n        (success,) = address(devWallet).call{value: ethBalance}(\"\");\r\n \r\n\r\n    }\r\n}"}},"language":"Solidity","settings":{"libraries":{},"optimizer":{"runs":200,"enabled":false}}},"stdJsonOutput":{"sources":{"GIGGLE.sol":{"id":0}},"contracts":{"GIGGLE.sol":{"GIGGLE":{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"OwnershipTransferred","type":"event","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"SwapAndLiquify","type":"event","inputs":[{"name":"tokensSwapped","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"ethReceived","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokensIntoLiquidity","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"devWalletUpdated","type":"event","inputs":[{"name":"newWallet","type":"address","indexed":true,"internalType":"address"},{"name":"oldWallet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"marketingWalletUpdated","type":"event","inputs":[{"name":"newWallet","type":"address","indexed":true,"internalType":"address"},{"name":"oldWallet","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"_isExcludedMaxTransactionAmount","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"addBots","type":"function","inputs":[{"name":"bots","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"allowance","type":"function","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"automatedMarketMakerPairs","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"balanceOf","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"buyDevFee","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"buyTotalFees","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"decimals","type":"function","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"name":"decreaseAllowance","type":"function","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"disableTransferDelay","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"enableTrading","type":"function","inputs":[{"name":"Bblock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"enableTrading","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"excludeFromFees","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"excluded","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"excludeFromMaxTransaction","type":"function","inputs":[{"name":"updAds","type":"address","internalType":"address"},{"name":"isEx","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"increaseAllowance","type":"function","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"isBot","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"isExcludedFromFees","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"limitsInEffect","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"maxTransactionAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"maxWallet","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"name","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"owner","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"removeBots","type":"function","inputs":[{"name":"bots","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"removeLimits","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"renounceOwnership","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"sellDevFee","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"sellTotalFees","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"setAutomatedMarketMakerPair","type":"function","inputs":[{"name":"pair","type":"address","internalType":"address"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"swapTokensAtAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"tokensForDev","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"tradingActive","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"transfer","type":"function","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"transferDelayEnabled","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"transferFrom","type":"function","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"name":"transferOwnership","type":"function","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"uniswapV2Pair","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"uniswapV2Router","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Router02"}],"stateMutability":"view"},{"name":"updateBuyFees","type":"function","inputs":[{"name":"_devFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateDevWallet","type":"function","inputs":[{"name":"newWallet","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateMaxTxnAmount","type":"function","inputs":[{"name":"newNum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateMaxWalletAmount","type":"function","inputs":[{"name":"newNum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateSellFees","type":"function","inputs":[{"name":"_devFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateSwapTokensAtAmount","type":"function","inputs":[{"name":"newAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"}],"metadata":"{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensSwapped\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethReceived\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensIntoLiquidity\",\"type\":\"uint256\"}],\"name\":\"SwapAndLiquify\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newWallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldWallet\",\"type\":\"address\"}],\"name\":\"devWalletUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newWallet\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldWallet\",\"type\":\"address\"}],\"name\":\"marketingWalletUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_isExcludedMaxTransactionAmount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"bots\",\"type\":\"address[]\"}],\"name\":\"addBots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"automatedMarketMakerPairs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buyDevFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buyTotalFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableTransferDelay\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"Bblock\",\"type\":\"uint256\"}],\"name\":\"enableTrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableTrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"excluded\",\"type\":\"bool\"}],\"name\":\"excludeFromFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"updAds\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEx\",\"type\":\"bool\"}],\"name\":\"excludeFromMaxTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isExcludedFromFees\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limitsInEffect\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTransactionAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"bots\",\"type\":\"address[]\"}],\"name\":\"removeBots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeLimits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sellDevFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sellTotalFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setAutomatedMarketMakerPair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapTokensAtAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokensForDev\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tradingActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferDelayEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV2Pair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV2Router\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Router02\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_devFee\",\"type\":\"uint256\"}],\"name\":\"updateBuyFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newWallet\",\"type\":\"address\"}],\"name\":\"updateDevWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newNum\",\"type\":\"uint256\"}],\"name\":\"updateMaxTxnAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newNum\",\"type\":\"uint256\"}],\"name\":\"updateMaxWalletAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_devFee\",\"type\":\"uint256\"}],\"name\":\"updateSellFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newAmount\",\"type\":\"uint256\"}],\"name\":\"updateSwapTokensAtAmount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"GIGGLE.sol\":\"GIGGLE\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"GIGGLE.sol\":{\"keccak256\":\"0xc4ac8a49b5a0e79ecc30280d94f60b36c672ec55103a53b75d5267a43db440a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed3f53dc3603167551f43a4ccc7d6f1140a5b6d94fb601920c6ded2dd65c9733\",\"dweb:/ipfs/QmU9vbvuGmucHniaXmu9AfnDgESioZoqbx2yet9hBQqGqw\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1},"devdoc":{"kind":"dev","methods":{},"version":1},"storageLayout":{"types":{"t_bool":{"label":"bool","encoding":"inplace","numberOfBytes":"1"},"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_string_storage":{"label":"string","encoding":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"key":"t_address","label":"mapping(address => bool)","value":"t_bool","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"key":"t_address","label":"mapping(address => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"key":"t_address","label":"mapping(address => mapping(address => uint256))","value":"t_mapping(t_address,t_uint256)","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_mapping(t_address,t_uint256)","astId":243,"label":"_balances","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))","astId":249,"label":"_allowances","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"2","type":"t_uint256","astId":251,"label":"_totalSupply","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"3","type":"t_string_storage","astId":253,"label":"_name","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"4","type":"t_string_storage","astId":255,"label":"_symbol","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"5","type":"t_address","astId":1064,"label":"_owner","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"6","type":"t_mapping(t_address,t_bool)","astId":1220,"label":"isBot","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"7","type":"t_bool","astId":1222,"label":"_swapping","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"8","type":"t_uint256","astId":1224,"label":"_launchTime","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"9","type":"t_address","astId":1226,"label":"devWallet","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"10","type":"t_uint256","astId":1228,"label":"maxTransactionAmount","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"11","type":"t_uint256","astId":1230,"label":"swapTokensAtAmount","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"12","type":"t_uint256","astId":1232,"label":"maxWallet","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"13","type":"t_bool","astId":1235,"label":"limitsInEffect","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"13","type":"t_bool","astId":1238,"label":"tradingActive","offset":1,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"14","type":"t_mapping(t_address,t_uint256)","astId":1242,"label":"_holderLastTransferTimestamp","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"15","type":"t_bool","astId":1245,"label":"transferDelayEnabled","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"16","type":"t_uint256","astId":1247,"label":"buyTotalFees","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"17","type":"t_uint256","astId":1249,"label":"buyDevFee","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"18","type":"t_uint256","astId":1251,"label":"sellTotalFees","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"19","type":"t_uint256","astId":1253,"label":"sellDevFee","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"20","type":"t_uint256","astId":1255,"label":"tokensForDev","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"21","type":"t_mapping(t_address,t_bool)","astId":1259,"label":"_isExcludedFromFees","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"22","type":"t_mapping(t_address,t_bool)","astId":1263,"label":"_isExcludedMaxTransactionAmount","offset":0,"contract":"GIGGLE.sol:GIGGLE"},{"slot":"23","type":"t_mapping(t_address,t_bool)","astId":1267,"label":"automatedMarketMakerPairs","offset":0,"contract":"GIGGLE.sol:GIGGLE"}]},"transientStorageLayout":null,"evm":{"bytecode":{"object":"60c06040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600b81526020017f476967676c652046756e640000000000000000000000000000000000000000008152506040518060400160405280600681526020017f474947474c4500000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000999565b5080600490805190602001906200010092919062000999565b5050506200012362000117620004ef60201b60201c565b620004f760201b60201c565b60007310ed43c718714eb63d5aa57b78b54704e256024e90506200014f816001620005bd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000ab3565b6040518363ffffffff1660e01b8152600401620002a292919062000af6565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005bd60201b60201c565b6200034560a0516001620006a760201b60201c565b600060059050600060059050600069d3c21bcecceda10000009050606460028262000371919062000b5c565b6200037d919062000bec565b600a81905550606460028262000394919062000b5c565b620003a0919062000bec565b600c81905550612710600582620003b8919062000b5c565b620003c4919062000bec565b600b81905550826011819055506011546010819055508160138190555060135460128190555073c7f501d25ea088aefca8b4b3ebd936aae12bf4a4600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000461620004536200070260201b60201c565b60016200072c60201b60201c565b620004743060016200072c60201b60201c565b6200048961dead60016200072c60201b60201c565b620004ab6200049d6200070260201b60201c565b6001620005bd60201b60201c565b620004be306001620005bd60201b60201c565b620004d361dead6001620005bd60201b60201c565b620004e533826200081660201b60201c565b5050505062000e09565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005cd620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f36200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200064c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006439062000c85565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200073c620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007626200070260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b29062000c85565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008809062000cf7565b60405180910390fd5b6200089d600083836200098f60201b60201c565b8060026000828254620008b1919062000d19565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000908919062000d19565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096f919062000d87565b60405180910390a36200098b600083836200099460201b60201c565b5050565b505050565b505050565b828054620009a79062000dd3565b90600052602060002090601f016020900481019282620009cb576000855562000a17565b82601f10620009e657805160ff191683800117855562000a17565b8280016001018555821562000a17579182015b8281111562000a16578251825591602001919060010190620009f9565b5b50905062000a26919062000a2a565b5090565b5b8082111562000a4557600081600090555060010162000a2b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a7b8262000a4e565b9050919050565b62000a8d8162000a6e565b811462000a9957600080fd5b50565b60008151905062000aad8162000a82565b92915050565b60006020828403121562000acc5762000acb62000a49565b5b600062000adc8482850162000a9c565b91505092915050565b62000af08162000a6e565b82525050565b600060408201905062000b0d600083018562000ae5565b62000b1c602083018462000ae5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b698262000b23565b915062000b768362000b23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb25762000bb162000b2d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bf98262000b23565b915062000c068362000b23565b92508262000c195762000c1862000bbd565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c6d60208362000c24565b915062000c7a8262000c35565b602082019050919050565b6000602082019050818103600083015262000ca08162000c5e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cdf601f8362000c24565b915062000cec8262000ca7565b602082019050919050565b6000602082019050818103600083015262000d128162000cd0565b9050919050565b600062000d268262000b23565b915062000d338362000b23565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d6b5762000d6a62000b2d565b5b828201905092915050565b62000d818162000b23565b82525050565b600060208201905062000d9e600083018462000d76565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dec57607f821691505b6020821081141562000e035762000e0262000da4565b5b50919050565b60805160a051614d9962000e676000396000818161101e0152818161177c01528181611d43015261282d015260008181610bb101528181611db4015281816127d5015281816135bc0152818161369d01526136c40152614d996000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220aab09e998046163f20fca3fe3a5467d5c1143c3f86f3b39a907138b2f12a665264736f6c634300080b0033","sourceMap":"11701:12739:0:-:0;;;12182:4;12153:33;;;;;;;;;;;;;;;;;;;;12221:5;12193:33;;;;;;;;;;;;;;;;;;;;12452:4;12417:39;;;;;;;;;;;;;;;;;;;;13360:1800;;;;;;;;;;2881:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:5;2948;:13;;;;;;;;;;;;:::i;:::-;;2982:7;2972;:17;;;;;;;;;;;;:::i;:::-;;2881:116;;10213:32;10232:12;:10;;;:12;;:::i;:::-;10213:18;;;:32;;:::i;:::-;13416:35:::1;13473:42;13416:100;;13537:58;13571:16;13590:4;13537:25;;;:58;;:::i;:::-;13624:16;13606:34;;;;;;;;::::0;::::1;13695:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13677:56;;;13742:4;13749:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13677:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13661:112;;;;;;;;::::0;::::1;13784:55;13818:13;;13834:4;13784:25;;;:55;;:::i;:::-;13850:58;13887:13;;13903:4;13850:28;;;:58;;:::i;:::-;13925:18;13946:1;13925:22;;13961:19;13983:1;13961:23;;14005:19;14027:14;14005:36;;14103:3;14099:1;14085:11;:15;;;;:::i;:::-;:21;;;;:::i;:::-;14062:20;:44;;;;14177:3;14173:1;14159:11;:15;;;;:::i;:::-;:21;;;;:::i;:::-;14147:9;:33;;;;14246:5;14242:1;14228:11;:15;;;;:::i;:::-;:23;;;;:::i;:::-;14207:18;:44;;;;14318:10;14306:9;:22;;;;14355:9;;14339:12;:25;;;;14390:11;14377:10;:24;;;;14428:10;;14412:13;:26;;;;14498:42;14478:9;;:63;;;;;;;;;;;;;;;;;;14647:30;14663:7;:5;;;:7;;:::i;:::-;14672:4;14647:15;;;:30;;:::i;:::-;14688:36;14712:4;14719;14688:15;;;:36;;:::i;:::-;14735:38;14759:6;14768:4;14735:15;;;:38;;:::i;:::-;14794:40;14820:7;:5;;;:7;;:::i;:::-;14829:4;14794:25;;;:40;;:::i;:::-;14845:46;14879:4;14886;14845:25;;;:46;;:::i;:::-;14902:48;14936:6;14945:4;14902:25;;;:48;;:::i;:::-;15122:30;15128:10;15140:11;15122:5;;;:30;;:::i;:::-;13405:1755;;;;11701:12739:::0;;99:98;152:7;179:10;172:17;;99:98;:::o;10804:191::-;10878:16;10897:6;;;;;;;;;;;10878:25;;10923:8;10914:6;;:17;;;;;;;;;;;;;;;;;;10978:8;10947:40;;10968:8;10947:40;;;;;;;;;;;;10867:128;10804:191;:::o;16705:144::-;10407:12;:10;;;:12;;:::i;:::-;10396:23;;:7;:5;;;:7;;:::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16837:4:::1;16795:31;:39;16827:6;16795:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16705:144:::0;;:::o;17902:130::-;18019:5;17985:25;:31;18011:4;17985:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17902:130;;:::o;10261:87::-;10307:7;10334:6;;;;;;;;;;;10327:13;;10261:87;:::o;17289:132::-;10407:12;:10;;;:12;;:::i;:::-;10396:23;;:7;:5;;;:7;;:::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17405:8:::1;17374:19;:28;17394:7;17374:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17289:132:::0;;:::o;6062:399::-;6165:1;6146:21;;:7;:21;;;;6138:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6216:49;6245:1;6249:7;6258:6;6216:20;;;:49;;:::i;:::-;6294:6;6278:12;;:22;;;;;;;:::i;:::-;;;;;;;;6333:6;6311:9;:18;6321:7;6311:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;6376:7;6355:37;;6372:1;6355:37;;;6385:6;6355:37;;;;;;:::i;:::-;;;;;;;;6405:48;6433:1;6437:7;6446:6;6405:19;;;:48;;:::i;:::-;6062:399;;:::o;7456:125::-;;;;:::o;7589:124::-;;;;:::o;11701:12739::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:332::-;1447:4;1485:2;1474:9;1470:18;1462:26;;1498:71;1566:1;1555:9;1551:17;1542:6;1498:71;:::i;:::-;1579:72;1647:2;1636:9;1632:18;1623:6;1579:72;:::i;:::-;1326:332;;;;;:::o;1664:77::-;1701:7;1730:5;1719:16;;1664:77;;;:::o;1747:180::-;1795:77;1792:1;1785:88;1892:4;1889:1;1882:15;1916:4;1913:1;1906:15;1933:348;1973:7;1996:20;2014:1;1996:20;:::i;:::-;1991:25;;2030:20;2048:1;2030:20;:::i;:::-;2025:25;;2218:1;2150:66;2146:74;2143:1;2140:81;2135:1;2128:9;2121:17;2117:105;2114:131;;;2225:18;;:::i;:::-;2114:131;2273:1;2270;2266:9;2255:20;;1933:348;;;;:::o;2287:180::-;2335:77;2332:1;2325:88;2432:4;2429:1;2422:15;2456:4;2453:1;2446:15;2473:185;2513:1;2530:20;2548:1;2530:20;:::i;:::-;2525:25;;2564:20;2582:1;2564:20;:::i;:::-;2559:25;;2603:1;2593:35;;2608:18;;:::i;:::-;2593:35;2650:1;2647;2643:9;2638:14;;2473:185;;;;:::o;2664:169::-;2748:11;2782:6;2777:3;2770:19;2822:4;2817:3;2813:14;2798:29;;2664:169;;;;:::o;2839:182::-;2979:34;2975:1;2967:6;2963:14;2956:58;2839:182;:::o;3027:366::-;3169:3;3190:67;3254:2;3249:3;3190:67;:::i;:::-;3183:74;;3266:93;3355:3;3266:93;:::i;:::-;3384:2;3379:3;3375:12;3368:19;;3027:366;;;:::o;3399:419::-;3565:4;3603:2;3592:9;3588:18;3580:26;;3652:9;3646:4;3642:20;3638:1;3627:9;3623:17;3616:47;3680:131;3806:4;3680:131;:::i;:::-;3672:139;;3399:419;;;:::o;3824:181::-;3964:33;3960:1;3952:6;3948:14;3941:57;3824:181;:::o;4011:366::-;4153:3;4174:67;4238:2;4233:3;4174:67;:::i;:::-;4167:74;;4250:93;4339:3;4250:93;:::i;:::-;4368:2;4363:3;4359:12;4352:19;;4011:366;;;:::o;4383:419::-;4549:4;4587:2;4576:9;4572:18;4564:26;;4636:9;4630:4;4626:20;4622:1;4611:9;4607:17;4600:47;4664:131;4790:4;4664:131;:::i;:::-;4656:139;;4383:419;;;:::o;4808:305::-;4848:3;4867:20;4885:1;4867:20;:::i;:::-;4862:25;;4901:20;4919:1;4901:20;:::i;:::-;4896:25;;5055:1;4987:66;4983:74;4980:1;4977:81;4974:107;;;5061:18;;:::i;:::-;4974:107;5105:1;5102;5098:9;5091:16;;4808:305;;;;:::o;5119:118::-;5206:24;5224:5;5206:24;:::i;:::-;5201:3;5194:37;5119:118;;:::o;5243:222::-;5336:4;5374:2;5363:9;5359:18;5351:26;;5387:71;5455:1;5444:9;5440:17;5431:6;5387:71;:::i;:::-;5243:222;;;;:::o;5471:180::-;5519:77;5516:1;5509:88;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5657:320;5701:6;5738:1;5732:4;5728:12;5718:22;;5785:1;5779:4;5775:12;5806:18;5796:81;;5862:4;5854:6;5850:17;5840:27;;5796:81;5924:2;5916:6;5913:14;5893:18;5890:38;5887:84;;;5943:18;;:::i;:::-;5887:84;5708:269;5657:320;;;:::o;11701:12739:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b80601181905550601154601081905550600a6010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550601960125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061445c565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612197906144ee565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614612565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c90614736565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e9906147ee565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127769061485a565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f990614912565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c906149a4565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8490614a10565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614aa2565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2490614a10565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614ac2565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c9906146a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323990614736565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614b68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614bb9565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614be3565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614d09565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b6000614446601d83613765565b915061445182614410565b602082019050919050565b6000602082019050818103600083015261447581614439565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144d8602683613765565b91506144e38261447c565b604082019050919050565b60006020820190508181036000830152614507816144cb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061456a602483613765565b91506145758261450e565b604082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006145fc602283613765565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061468e602583613765565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614720602383613765565b915061472b826146c4565b604082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b60006147d8605183613765565b91506147e382614756565b606082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614844601683613765565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006148fc604983613765565b91506149078261487a565b606082019050919050565b6000602082019050818103600083015261492b816148ef565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061498e603583613765565b915061499982614932565b604082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149fa601383613765565b9150614a05826149c4565b602082019050919050565b60006020820190508181036000830152614a29816149ed565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a8c603683613765565b9150614a9782614a30565b604082019050919050565b60006020820190508181036000830152614abb81614a7f565b9050919050565b6000614acd82613887565b9150614ad883613887565b925082821015614aeb57614aea613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b52602683613765565b9150614b5d82614af6565b604082019050919050565b60006020820190508181036000830152614b8181614b45565b9050919050565b600081905092915050565b50565b6000614ba3600083614b88565b9150614bae82614b93565b600082019050919050565b6000614bc482614b96565b9150819050919050565b600081519050614bdd8161385b565b92915050565b600060208284031215614bf957614bf861381f565b5b6000614c0784828501614bce565b91505092915050565b6000819050919050565b6000614c35614c30614c2b84614c10565b613960565b613887565b9050919050565b614c4581614c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c8081613849565b82525050565b6000614c928383614c77565b60208301905092915050565b6000602082019050919050565b6000614cb682614c4b565b614cc08185614c56565b9350614ccb83614c67565b8060005b83811015614cfc578151614ce38882614c86565b9750614cee83614c9e565b925050600181019050614ccf565b5085935050505092915050565b600060a082019050614d1e60008301886139da565b614d2b6020830187614c3c565b8181036040830152614d3d8186614cab565b9050614d4c6060830185613abb565b614d5960808301846139da565b969550505050505056fea2646970667358221220aab09e998046163f20fca3fe3a5467d5c1143c3f86f3b39a907138b2f12a665264736f6c634300080b0033","sourceMap":"11701:12739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3005:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3919:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12788:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11777:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3326:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18046:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16242:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4096:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3225:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4677:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11882:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11835;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12153:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18214:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12537:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18630:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3442:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10484:103;;;;;;;;;;;;;:::i;:::-;;16861:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15452:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16705:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17745:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15267:130;;;;;;;;;;;;;:::i;:::-;;10261:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3113:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17429:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12503:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12607:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12572:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4900:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3577:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13010:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12193:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17289:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16482:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12417:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12030:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15848:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18351:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12469:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3760:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12072:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15638:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17073:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10595:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12112:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3005:100;3059:13;3092:5;3085:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3005:100;:::o;3919:169::-;4002:4;4019:39;4028:12;:10;:12::i;:::-;4042:7;4051:6;4019:8;:39::i;:::-;4076:4;4069:11;;3919:169;;;;:::o;12788:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11777:51::-;;;:::o;3326:108::-;3387:7;3414:12;;3407:19;;3326:108;:::o;18046:157::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18153:9:::1;;;;;;;;;;;18125:38;;18142:9;18125:38;;;;;;;;;;;;18186:9;18174;;:21;;;;;;;;;;;;;;;;;;18046:157:::0;:::o;16242:232::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16363:4:::1;16355;16351:1;16335:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16334:33;;;;:::i;:::-;16324:6;:43;;16316:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16462:4;16453:6;:13;;;;:::i;:::-;16430:20;:36;;;;16242:232:::0;:::o;4096:573::-;4236:4;4253:24;4280:11;:19;4292:6;4280:19;;;;;;;;;;;;;;;:33;4300:12;:10;:12::i;:::-;4280:33;;;;;;;;;;;;;;;;4253:60;;4348:17;4328:16;:37;4324:265;;4410:6;4390:16;:26;;4382:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4505:57;4514:6;4522:12;:10;:12::i;:::-;4555:6;4536:16;:25;4505:8;:57::i;:::-;4324:265;4601:36;4611:6;4619:9;4630:6;4601:9;:36::i;:::-;4657:4;4650:11;;;4096:573;;;;;:::o;3225:93::-;3283:5;3308:2;3301:9;;3225:93;:::o;4677:215::-;4765:4;4782:80;4791:12;:10;:12::i;:::-;4805:7;4851:10;4814:11;:25;4826:12;:10;:12::i;:::-;4814:25;;;;;;;;;;;;;;;:34;4840:7;4814:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4782:8;:80::i;:::-;4880:4;4873:11;;4677:215;;;;:::o;11882:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11835:::-;;;:::o;12153:33::-;;;;;;;;;;;;;:::o;18214:125::-;18279:4;18303:19;:28;18323:7;18303:28;;;;;;;;;;;;;;;;;;;;;;;;;18296:35;;18214:125;;;:::o;12537:28::-;;;;:::o;18630:168::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18708:6:::1;18703:88;18724:4;:11;18720:1;:15;18703:88;;;18774:5;18757;:14;18763:4;18768:1;18763:7;;;;;;;;:::i;:::-;;;;;;;;18757:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18737:3;;;;;:::i;:::-;;;;18703:88;;;;18630:168:::0;:::o;3442:127::-;3516:7;3543:9;:18;3553:7;3543:18;;;;;;;;;;;;;;;;3536:25;;3442:127;;;:::o;10484:103::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10549:30:::1;10576:1;10549:18;:30::i;:::-;10484:103::o:0;16861:203::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16943:7:::1;16931:9;:19;;;;16976:9;;16961:12;:24;;;;17020:2;17004:12;;:18;;16996:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16861:203:::0;:::o;15452:121::-;15504:4;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15538:5:::1;15521:14;;:22;;;;;;;;;;;;;;;;;;15561:4;15554:11;;15452:121:::0;:::o;16705:144::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16837:4:::1;16795:31;:39;16827:6;16795:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16705:144:::0;;:::o;17745:149::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17830:4:::1;17814:13;;:20;;;;;;;;;;;;;;;;;;17859:27;17879:6;17859:15;:19;;:27;;;;:::i;:::-;17845:11;:41;;;;17745:149:::0;:::o;15267:130::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15338:4:::1;15322:13;;:20;;;;;;;;;;;;;;;;;;15367:22;15387:1;15367:15;:19;;:22;;;;:::i;:::-;15353:11;:36;;;;15267:130::o:0;10261:87::-;10307:7;10334:6;;;;;;;;;;;10327:13;;10261:87;:::o;3113:104::-;3169:13;3202:7;3195:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3113:104;:::o;17429:244::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17536:13:::1;17528:21;;:4;:21;;;;17520:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17624:41;17653:4;17659:5;17624:28;:41::i;:::-;17429:244:::0;;:::o;12503:24::-;;;;:::o;12607:27::-;;;;:::o;12572:25::-;;;;:::o;4900:413::-;4993:4;5010:24;5037:11;:25;5049:12;:10;:12::i;:::-;5037:25;;;;;;;;;;;;;;;:34;5063:7;5037:34;;;;;;;;;;;;;;;;5010:61;;5110:15;5090:16;:35;;5082:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5203:67;5212:12;:10;:12::i;:::-;5226:7;5254:15;5235:16;:34;5203:8;:67::i;:::-;5301:4;5294:11;;;4900:413;;;;:::o;3577:175::-;3663:4;3680:42;3690:12;:10;:12::i;:::-;3704:9;3715:6;3680:9;:42::i;:::-;3740:4;3733:11;;3577:175;;;;:::o;13010:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12193:33::-;;;;;;;;;;;;;:::o;17289:132::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17405:8:::1;17374:19;:28;17394:7;17374:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17289:132:::0;;:::o;16482:211::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16604:4:::1;16598;16594:1;16578:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16577:31;;;;:::i;:::-;16567:6;:41;;16559:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16681:4;16672:6;:13;;;;:::i;:::-;16660:9;:25;;;;16482:211:::0;:::o;12417:39::-;;;;;;;;;;;;;:::o;12030:35::-;;;;:::o;15848:382::-;15929:4;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15986:6:::1;15982:1;15966:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;15953:9;:39;;15945:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16101:4;16097:1;16081:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16068:9;:37;;16060:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16193:9;16172:18;:30;;;;16219:4;16212:11;;15848:382:::0;;;:::o;18351:267::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18426:6:::1;18421:190;18442:4;:11;18438:1;:15;18421:190;;;18490:13;18479:24;;:4;18484:1;18479:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;18526:15;18507:35;;:4;18512:1;18507:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;18479:63;18475:125;;;18580:4;18563:5;:14;18569:4;18574:1;18569:7;;;;;;;;:::i;:::-;;;;;;;;18563:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18475:125;18455:3;;;;;:::i;:::-;;;;18421:190;;;;18351:267:::0;:::o;12469:27::-;;;;:::o;3760:151::-;3849:7;3876:11;:18;3888:5;3876:18;;;;;;;;;;;;;;;:27;3895:7;3876:27;;;;;;;;;;;;;;;;3869:34;;3760:151;;;;:::o;12072:33::-;;;;:::o;15638:135::-;15698:4;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15738:5:::1;15715:20;;:28;;;;;;;;;;;;;;;;;;15761:4;15754:11;;15638:135:::0;:::o;17073:208::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17157:7:::1;17144:10;:20;;;;17191:10;;17175:13;:26;;;;17237:2;17220:13;;:19;;17212:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17073:208:::0;:::o;10595:201::-;10407:12;:10;:12::i;:::-;10396:23;;:7;:5;:7::i;:::-;:23;;;10388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10704:1:::1;10684:22;;:8;:22;;;;10676:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10760:28;10779:8;10760:18;:28::i;:::-;10595:201:::0;:::o;12112:24::-;;;;:::o;99:98::-;152:7;179:10;172:17;;99:98;:::o;7068:380::-;7221:1;7204:19;;:5;:19;;;;7196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7302:1;7283:21;;:7;:21;;;;7275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7386:6;7356:11;:18;7368:5;7356:18;;;;;;;;;;;;;;;:27;7375:7;7356:27;;;;;;;;;;;;;;;:36;;;;7424:7;7408:32;;7417:5;7408:32;;;7433:6;7408:32;;;;;;:::i;:::-;;;;;;;;7068:380;;;:::o;18806:3910::-;18954:1;18938:18;;:4;:18;;;;18930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19031:1;19017:16;;:2;:16;;;;19009:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19093:5;:11;19099:4;19093:11;;;;;;;;;;;;;;;;;;;;;;;;;19092:12;19084:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19226:1;19216:6;:11;19212:93;;;19244:28;19260:4;19266:2;19270:1;19244:15;:28::i;:::-;19287:7;;19212:93;19347:11;;19329:15;:29;19325:51;;;19372:4;19360:5;:9;19366:2;19360:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;19325:51;19401:14;;;;;;;;;;;19397:1834;;;19462:7;:5;:7::i;:::-;19454:15;;:4;:15;;;;:49;;;;;19496:7;:5;:7::i;:::-;19490:13;;:2;:13;;;;19454:49;:86;;;;;19538:1;19524:16;;:2;:16;;;;19454:86;:128;;;;;19575:6;19561:21;;:2;:21;;;;19454:128;:159;;;;;19604:9;;;;;;;;;;;19603:10;19454:159;19432:1788;;;19653:13;;;;;;;;;;;19648:150;;19699:19;:25;19719:4;19699:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19728:19;:23;19748:2;19728:23;;;;;;;;;;;;;;;;;;;;;;;;;19699:52;19691:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19648:150;19956:20;;;;;;;;;;;19952:423;;;20010:7;:5;:7::i;:::-;20004:13;;:2;:13;;;;:47;;;;;20035:15;20021:30;;:2;:30;;;;20004:47;:79;;;;;20069:13;20055:28;;:2;:28;;;;20004:79;20000:356;;;20161:12;20119:28;:39;20148:9;20119:39;;;;;;;;;;;;;;;;:54;20111:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;20320:12;20278:28;:39;20307:9;20278:39;;;;;;;;;;;;;;;:54;;;;20000:356;19952:423;20443:25;:31;20469:4;20443:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20479:31;:35;20511:2;20479:35;;;;;;;;;;;;;;;;;;;;;;;;;20478:36;20443:71;20439:766;;;20557:20;;20547:6;:30;;20539:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20692:9;;20675:13;20685:2;20675:9;:13::i;:::-;20666:6;:22;;;;:::i;:::-;:35;;20658:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20439:766;;;20818:25;:29;20844:2;20818:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20852:31;:37;20884:4;20852:37;;;;;;;;;;;;;;;;;;;;;;;;;20851:38;20818:71;20814:391;;;20932:20;;20922:6;:30;;20914:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20814:391;;;21059:31;:35;21091:2;21059:35;;;;;;;;;;;;;;;;;;;;;;;;;21054:151;;21152:9;;21135:13;21145:2;21135:9;:13::i;:::-;21126:6;:22;;;;:::i;:::-;:35;;21118:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21054:151;20814:391;20439:766;19432:1788;19397:1834;21245:28;21276:24;21294:4;21276:9;:24::i;:::-;21245:55;;21311:12;21350:18;;21326:20;:42;;21311:57;;21399:7;:34;;;;;21424:9;;;;;;;;;;;21423:10;21399:34;:83;;;;;21451:25;:31;21477:4;21451:31;;;;;;;;;;;;;;;;;;;;;;;;;21450:32;21399:83;:126;;;;;21500:19;:25;21520:4;21500:25;;;;;;;;;;;;;;;;;;;;;;;;;21499:26;21399:126;:167;;;;;21543:19;:23;21563:2;21543:23;;;;;;;;;;;;;;;;;;;;;;;;;21542:24;21399:167;21381:297;;;21605:4;21593:9;;:16;;;;;;;;;;;;;;;;;;21624:10;:8;:10::i;:::-;21661:5;21649:9;;:17;;;;;;;;;;;;;;;;;;21381:297;21690:12;21706:9;;;;;;;;;;;21705:10;21690:25;;21817:19;:25;21837:4;21817:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21846:19;:23;21866:2;21846:23;;;;;;;;;;;;;;;;;;;;;;;;;21817:52;21813:73;;;21881:5;21871:15;;21813:73;21917:12;22022:7;22018:645;;;22074:25;:29;22100:2;22074:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22123:1;22107:13;;:17;22074:50;22070:438;;;22151:34;22181:3;22151:25;22162:13;;22151:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;22144:41;;22240:13;;22227:10;;22220:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;22204:12;;:49;;;;;;;:::i;:::-;;;;;;;;22070:438;;;22314:25;:31;22340:4;22314:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22364:1;22349:12;;:16;22314:51;22311:197;;;22393:33;22422:3;22393:24;22404:12;;22393:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22386:40;;22480:12;;22468:9;;22461:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;22445:12;;:47;;;;;;;:::i;:::-;;;;;;;;22311:197;22070:438;22535:1;22528:4;:8;22524:91;;;22557:42;22573:4;22587;22594;22557:15;:42::i;:::-;22524:91;22647:4;22637:14;;;;;:::i;:::-;;;22018:645;22675:33;22691:4;22697:2;22701:6;22675:15;:33::i;:::-;18919:3797;;;;18806:3910;;;;:::o;10804:191::-;10878:16;10897:6;;;;;;;;;;;10878:25;;10923:8;10914:6;;:17;;;;;;;;;;;;;;;;;;10978:8;10947:40;;10968:8;10947:40;;;;;;;;;;;;10867:128;10804:191;:::o;8858:98::-;8916:7;8947:1;8943;:5;;;;:::i;:::-;8936:12;;8858:98;;;;:::o;17902:130::-;18019:5;17985:25;:31;18011:4;17985:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17902:130;;:::o;5321:733::-;5479:1;5461:20;;:6;:20;;;;5453:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5563:1;5542:23;;:9;:23;;;;5534:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5618:47;5639:6;5647:9;5658:6;5618:20;:47::i;:::-;5678:21;5702:9;:17;5712:6;5702:17;;;;;;;;;;;;;;;;5678:41;;5755:6;5738:13;:23;;5730:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5876:6;5860:13;:22;5840:9;:17;5850:6;5840:17;;;;;;;;;;;;;;;:42;;;;5928:6;5904:9;:20;5914:9;5904:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5969:9;5952:35;;5961:6;5952:35;;;5980:6;5952:35;;;;;;:::i;:::-;;;;;;;;6000:46;6020:6;6028:9;6039:6;6000:19;:46::i;:::-;5442:612;5321:733;;;:::o;23848:589::-;23887:23;23913:24;23931:4;23913:9;:24::i;:::-;23887:50;;23948:25;23976:12;;23948:40;;23999:12;24047:1;24028:15;:20;:46;;;;24073:1;24052:17;:22;24028:46;24025:60;;;24077:7;;;;;24025:60;24140:2;24119:18;;:23;;;;:::i;:::-;24101:15;:41;24098:111;;;24195:2;24174:18;;:23;;;;:::i;:::-;24156:41;;24098:111;24225:36;24243:17;24225;:36::i;:::-;24276:18;24297:21;24276:42;;24350:1;24335:12;:16;;;;24386:9;;;;;;;;;;;24378:23;;24409:10;24378:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24365:59;;;;;23876:561;;;;23848:589;:::o;9070:98::-;9128:7;9159:1;9155;:5;;;;:::i;:::-;9148:12;;9070:98;;;;:::o;9176:::-;9234:7;9265:1;9261;:5;;;;:::i;:::-;9254:12;;9176:98;;;;:::o;7456:125::-;;;;:::o;7589:124::-;;;;:::o;22724:590::-;22851:21;22889:1;22875:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22851:40;;22920:4;22902;22907:1;22902:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22946:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22936:4;22941:1;22936:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22981:62;22998:4;23013:15;23031:11;22981:8;:62::i;:::-;23082:15;:66;;;23163:11;23189:1;23233:4;23260;23280:15;23082:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22780:534;22724:590;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:86::-;6154:7;6194:4;6187:5;6183:16;6172:27;;6119:86;;;:::o;6211:112::-;6294:22;6310:5;6294:22;:::i;:::-;6289:3;6282:35;6211:112;;:::o;6329:214::-;6418:4;6456:2;6445:9;6441:18;6433:26;;6469:67;6533:1;6522:9;6518:17;6509:6;6469:67;:::i;:::-;6329:214;;;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6549:118;;:::o;6673:222::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:71;6885:1;6874:9;6870:17;6861:6;6817:71;:::i;:::-;6673:222;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:180;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7210:281;7293:27;7315:4;7293:27;:::i;:::-;7285:6;7281:40;7423:6;7411:10;7408:22;7387:18;7375:10;7372:34;7369:62;7366:88;;;7434:18;;:::i;:::-;7366:88;7474:10;7470:2;7463:22;7253:238;7210:281;;:::o;7497:129::-;7531:6;7558:20;;:::i;:::-;7548:30;;7587:33;7615:4;7607:6;7587:33;:::i;:::-;7497:129;;;:::o;7632:311::-;7709:4;7799:18;7791:6;7788:30;7785:56;;;7821:18;;:::i;:::-;7785:56;7871:4;7863:6;7859:17;7851:25;;7931:4;7925;7921:15;7913:23;;7632:311;;;:::o;7949:117::-;8058:1;8055;8048:12;8089:710;8185:5;8210:81;8226:64;8283:6;8226:64;:::i;:::-;8210:81;:::i;:::-;8201:90;;8311:5;8340:6;8333:5;8326:21;8374:4;8367:5;8363:16;8356:23;;8427:4;8419:6;8415:17;8407:6;8403:30;8456:3;8448:6;8445:15;8442:122;;;8475:79;;:::i;:::-;8442:122;8590:6;8573:220;8607:6;8602:3;8599:15;8573:220;;;8682:3;8711:37;8744:3;8732:10;8711:37;:::i;:::-;8706:3;8699:50;8778:4;8773:3;8769:14;8762:21;;8649:144;8633:4;8628:3;8624:14;8617:21;;8573:220;;;8577:21;8191:608;;8089:710;;;;;:::o;8822:370::-;8893:5;8942:3;8935:4;8927:6;8923:17;8919:27;8909:122;;8950:79;;:::i;:::-;8909:122;9067:6;9054:20;9092:94;9182:3;9174:6;9167:4;9159:6;9155:17;9092:94;:::i;:::-;9083:103;;8899:293;8822:370;;;;:::o;9198:539::-;9282:6;9331:2;9319:9;9310:7;9306:23;9302:32;9299:119;;;9337:79;;:::i;:::-;9299:119;9485:1;9474:9;9470:17;9457:31;9515:18;9507:6;9504:30;9501:117;;;9537:79;;:::i;:::-;9501:117;9642:78;9712:7;9703:6;9692:9;9688:22;9642:78;:::i;:::-;9632:88;;9428:302;9198:539;;;;:::o;9743:116::-;9813:21;9828:5;9813:21;:::i;:::-;9806:5;9803:32;9793:60;;9849:1;9846;9839:12;9793:60;9743:116;:::o;9865:133::-;9908:5;9946:6;9933:20;9924:29;;9962:30;9986:5;9962:30;:::i;:::-;9865:133;;;;:::o;10004:468::-;10069:6;10077;10126:2;10114:9;10105:7;10101:23;10097:32;10094:119;;;10132:79;;:::i;:::-;10094:119;10252:1;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10223:117;10379:2;10405:50;10447:7;10438:6;10427:9;10423:22;10405:50;:::i;:::-;10395:60;;10350:115;10004:468;;;;;:::o;10478:474::-;10546:6;10554;10603:2;10591:9;10582:7;10578:23;10574:32;10571:119;;;10609:79;;:::i;:::-;10571:119;10729:1;10754:53;10799:7;10790:6;10779:9;10775:22;10754:53;:::i;:::-;10744:63;;10700:117;10856:2;10882:53;10927:7;10918:6;10907:9;10903:22;10882:53;:::i;:::-;10872:63;;10827:118;10478:474;;;;;:::o;10958:180::-;11006:77;11003:1;10996:88;11103:4;11100:1;11093:15;11127:4;11124:1;11117:15;11144:320;11188:6;11225:1;11219:4;11215:12;11205:22;;11272:1;11266:4;11262:12;11293:18;11283:81;;11349:4;11341:6;11337:17;11327:27;;11283:81;11411:2;11403:6;11400:14;11380:18;11377:38;11374:84;;;11430:18;;:::i;:::-;11374:84;11195:269;11144:320;;;:::o;11470:182::-;11610:34;11606:1;11598:6;11594:14;11587:58;11470:182;:::o;11658:366::-;11800:3;11821:67;11885:2;11880:3;11821:67;:::i;:::-;11814:74;;11897:93;11986:3;11897:93;:::i;:::-;12015:2;12010:3;12006:12;11999:19;;11658:366;;;:::o;12030:419::-;12196:4;12234:2;12223:9;12219:18;12211:26;;12283:9;12277:4;12273:20;12269:1;12258:9;12254:17;12247:47;12311:131;12437:4;12311:131;:::i;:::-;12303:139;;12030:419;;;:::o;12455:180::-;12503:77;12500:1;12493:88;12600:4;12597:1;12590:15;12624:4;12621:1;12614:15;12641:348;12681:7;12704:20;12722:1;12704:20;:::i;:::-;12699:25;;12738:20;12756:1;12738:20;:::i;:::-;12733:25;;12926:1;12858:66;12854:74;12851:1;12848:81;12843:1;12836:9;12829:17;12825:105;12822:131;;;12933:18;;:::i;:::-;12822:131;12981:1;12978;12974:9;12963:20;;12641:348;;;;:::o;12995:180::-;13043:77;13040:1;13033:88;13140:4;13137:1;13130:15;13164:4;13161:1;13154:15;13181:185;13221:1;13238:20;13256:1;13238:20;:::i;:::-;13233:25;;13272:20;13290:1;13272:20;:::i;:::-;13267:25;;13311:1;13301:35;;13316:18;;:::i;:::-;13301:35;13358:1;13355;13351:9;13346:14;;13181:185;;;;:::o;13372:234::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:17;13576:2;13568:6;13564:15;13557:42;13372:234;:::o;13612:366::-;13754:3;13775:67;13839:2;13834:3;13775:67;:::i;:::-;13768:74;;13851:93;13940:3;13851:93;:::i;:::-;13969:2;13964:3;13960:12;13953:19;;13612:366;;;:::o;13984:419::-;14150:4;14188:2;14177:9;14173:18;14165:26;;14237:9;14231:4;14227:20;14223:1;14212:9;14208:17;14201:47;14265:131;14391:4;14265:131;:::i;:::-;14257:139;;13984:419;;;:::o;14409:227::-;14549:34;14545:1;14537:6;14533:14;14526:58;14618:10;14613:2;14605:6;14601:15;14594:35;14409:227;:::o;14642:366::-;14784:3;14805:67;14869:2;14864:3;14805:67;:::i;:::-;14798:74;;14881:93;14970:3;14881:93;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;14642:366;;;:::o;15014:419::-;15180:4;15218:2;15207:9;15203:18;15195:26;;15267:9;15261:4;15257:20;15253:1;15242:9;15238:17;15231:47;15295:131;15421:4;15295:131;:::i;:::-;15287:139;;15014:419;;;:::o;15439:305::-;15479:3;15498:20;15516:1;15498:20;:::i;:::-;15493:25;;15532:20;15550:1;15532:20;:::i;:::-;15527:25;;15686:1;15618:66;15614:74;15611:1;15608:81;15605:107;;;15692:18;;:::i;:::-;15605:107;15736:1;15733;15729:9;15722:16;;15439:305;;;;:::o;15750:180::-;15798:77;15795:1;15788:88;15895:4;15892:1;15885:15;15919:4;15916:1;15909:15;15936:233;15975:3;15998:24;16016:5;15998:24;:::i;:::-;15989:33;;16044:66;16037:5;16034:77;16031:103;;;16114:18;;:::i;:::-;16031:103;16161:1;16154:5;16150:13;16143:20;;15936:233;;;:::o;16175:179::-;16315:31;16311:1;16303:6;16299:14;16292:55;16175:179;:::o;16360:366::-;16502:3;16523:67;16587:2;16582:3;16523:67;:::i;:::-;16516:74;;16599:93;16688:3;16599:93;:::i;:::-;16717:2;16712:3;16708:12;16701:19;;16360:366;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:244::-;17297:34;17293:1;17285:6;17281:14;17274:58;17366:27;17361:2;17353:6;17349:15;17342:52;17157:244;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:224::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:7;18408:2;18400:6;18396:15;18389:32;18204:224;:::o;18434:366::-;18576:3;18597:67;18661:2;18656:3;18597:67;:::i;:::-;18590:74;;18673:93;18762:3;18673:93;:::i;:::-;18791:2;18786:3;18782:12;18775:19;;18434:366;;;:::o;18806:419::-;18972:4;19010:2;18999:9;18995:18;18987:26;;19059:9;19053:4;19049:20;19045:1;19034:9;19030:17;19023:47;19087:131;19213:4;19087:131;:::i;:::-;19079:139;;18806:419;;;:::o;19231:223::-;19371:34;19367:1;19359:6;19355:14;19348:58;19440:6;19435:2;19427:6;19423:15;19416:31;19231:223;:::o;19460:366::-;19602:3;19623:67;19687:2;19682:3;19623:67;:::i;:::-;19616:74;;19699:93;19788:3;19699:93;:::i;:::-;19817:2;19812:3;19808:12;19801:19;;19460:366;;;:::o;19832:419::-;19998:4;20036:2;20025:9;20021:18;20013:26;;20085:9;20079:4;20075:20;20071:1;20060:9;20056:17;20049:47;20113:131;20239:4;20113:131;:::i;:::-;20105:139;;19832:419;;;:::o;20257:240::-;20397:34;20393:1;20385:6;20381:14;20374:58;20466:23;20461:2;20453:6;20449:15;20442:48;20257:240;:::o;20503:366::-;20645:3;20666:67;20730:2;20725:3;20666:67;:::i;:::-;20659:74;;20742:93;20831:3;20742:93;:::i;:::-;20860:2;20855:3;20851:12;20844:19;;20503:366;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;20875:419;;;:::o;21300:239::-;21440:34;21436:1;21428:6;21424:14;21417:58;21509:22;21504:2;21496:6;21492:15;21485:47;21300:239;:::o;21545:366::-;21687:3;21708:67;21772:2;21767:3;21708:67;:::i;:::-;21701:74;;21784:93;21873:3;21784:93;:::i;:::-;21902:2;21897:3;21893:12;21886:19;;21545:366;;;:::o;21917:419::-;22083:4;22121:2;22110:9;22106:18;22098:26;;22170:9;22164:4;22160:20;22156:1;22145:9;22141:17;22134:47;22198:131;22324:4;22198:131;:::i;:::-;22190:139;;21917:419;;;:::o;22342:179::-;22482:31;22478:1;22470:6;22466:14;22459:55;22342:179;:::o;22527:366::-;22669:3;22690:67;22754:2;22749:3;22690:67;:::i;:::-;22683:74;;22766:93;22855:3;22766:93;:::i;:::-;22884:2;22879:3;22875:12;22868:19;;22527:366;;;:::o;22899:419::-;23065:4;23103:2;23092:9;23088:18;23080:26;;23152:9;23146:4;23142:20;23138:1;23127:9;23123:17;23116:47;23180:131;23306:4;23180:131;:::i;:::-;23172:139;;22899:419;;;:::o;23324:225::-;23464:34;23460:1;23452:6;23448:14;23441:58;23533:8;23528:2;23520:6;23516:15;23509:33;23324:225;:::o;23555:366::-;23697:3;23718:67;23782:2;23777:3;23718:67;:::i;:::-;23711:74;;23794:93;23883:3;23794:93;:::i;:::-;23912:2;23907:3;23903:12;23896:19;;23555:366;;;:::o;23927:419::-;24093:4;24131:2;24120:9;24116:18;24108:26;;24180:9;24174:4;24170:20;24166:1;24155:9;24151:17;24144:47;24208:131;24334:4;24208:131;:::i;:::-;24200:139;;23927:419;;;:::o;24352:223::-;24492:34;24488:1;24480:6;24476:14;24469:58;24561:6;24556:2;24548:6;24544:15;24537:31;24352:223;:::o;24581:366::-;24723:3;24744:67;24808:2;24803:3;24744:67;:::i;:::-;24737:74;;24820:93;24909:3;24820:93;:::i;:::-;24938:2;24933:3;24929:12;24922:19;;24581:366;;;:::o;24953:419::-;25119:4;25157:2;25146:9;25142:18;25134:26;;25206:9;25200:4;25196:20;25192:1;25181:9;25177:17;25170:47;25234:131;25360:4;25234:131;:::i;:::-;25226:139;;24953:419;;;:::o;25378:221::-;25518:34;25514:1;25506:6;25502:14;25495:58;25587:4;25582:2;25574:6;25570:15;25563:29;25378:221;:::o;25605:366::-;25747:3;25768:67;25832:2;25827:3;25768:67;:::i;:::-;25761:74;;25844:93;25933:3;25844:93;:::i;:::-;25962:2;25957:3;25953:12;25946:19;;25605:366;;;:::o;25977:419::-;26143:4;26181:2;26170:9;26166:18;26158:26;;26230:9;26224:4;26220:20;26216:1;26205:9;26201:17;26194:47;26258:131;26384:4;26258:131;:::i;:::-;26250:139;;25977:419;;;:::o;26402:224::-;26542:34;26538:1;26530:6;26526:14;26519:58;26611:7;26606:2;26598:6;26594:15;26587:32;26402:224;:::o;26632:366::-;26774:3;26795:67;26859:2;26854:3;26795:67;:::i;:::-;26788:74;;26871:93;26960:3;26871:93;:::i;:::-;26989:2;26984:3;26980:12;26973:19;;26632:366;;;:::o;27004:419::-;27170:4;27208:2;27197:9;27193:18;27185:26;;27257:9;27251:4;27247:20;27243:1;27232:9;27228:17;27221:47;27285:131;27411:4;27285:131;:::i;:::-;27277:139;;27004:419;;;:::o;27429:222::-;27569:34;27565:1;27557:6;27553:14;27546:58;27638:5;27633:2;27625:6;27621:15;27614:30;27429:222;:::o;27657:366::-;27799:3;27820:67;27884:2;27879:3;27820:67;:::i;:::-;27813:74;;27896:93;27985:3;27896:93;:::i;:::-;28014:2;28009:3;28005:12;27998:19;;27657:366;;;:::o;28029:419::-;28195:4;28233:2;28222:9;28218:18;28210:26;;28282:9;28276:4;28272:20;28268:1;28257:9;28253:17;28246:47;28310:131;28436:4;28310:131;:::i;:::-;28302:139;;28029:419;;;:::o;28454:305::-;28594:34;28590:1;28582:6;28578:14;28571:58;28663:34;28658:2;28650:6;28646:15;28639:59;28732:19;28727:2;28719:6;28715:15;28708:44;28454:305;:::o;28765:366::-;28907:3;28928:67;28992:2;28987:3;28928:67;:::i;:::-;28921:74;;29004:93;29093:3;29004:93;:::i;:::-;29122:2;29117:3;29113:12;29106:19;;28765:366;;;:::o;29137:419::-;29303:4;29341:2;29330:9;29326:18;29318:26;;29390:9;29384:4;29380:20;29376:1;29365:9;29361:17;29354:47;29418:131;29544:4;29418:131;:::i;:::-;29410:139;;29137:419;;;:::o;29562:172::-;29702:24;29698:1;29690:6;29686:14;29679:48;29562:172;:::o;29740:366::-;29882:3;29903:67;29967:2;29962:3;29903:67;:::i;:::-;29896:74;;29979:93;30068:3;29979:93;:::i;:::-;30097:2;30092:3;30088:12;30081:19;;29740:366;;;:::o;30112:419::-;30278:4;30316:2;30305:9;30301:18;30293:26;;30365:9;30359:4;30355:20;30351:1;30340:9;30336:17;30329:47;30393:131;30519:4;30393:131;:::i;:::-;30385:139;;30112:419;;;:::o;30537:297::-;30677:34;30673:1;30665:6;30661:14;30654:58;30746:34;30741:2;30733:6;30729:15;30722:59;30815:11;30810:2;30802:6;30798:15;30791:36;30537:297;:::o;30840:366::-;30982:3;31003:67;31067:2;31062:3;31003:67;:::i;:::-;30996:74;;31079:93;31168:3;31079:93;:::i;:::-;31197:2;31192:3;31188:12;31181:19;;30840:366;;;:::o;31212:419::-;31378:4;31416:2;31405:9;31401:18;31393:26;;31465:9;31459:4;31455:20;31451:1;31440:9;31436:17;31429:47;31493:131;31619:4;31493:131;:::i;:::-;31485:139;;31212:419;;;:::o;31637:240::-;31777:34;31773:1;31765:6;31761:14;31754:58;31846:23;31841:2;31833:6;31829:15;31822:48;31637:240;:::o;31883:366::-;32025:3;32046:67;32110:2;32105:3;32046:67;:::i;:::-;32039:74;;32122:93;32211:3;32122:93;:::i;:::-;32240:2;32235:3;32231:12;32224:19;;31883:366;;;:::o;32255:419::-;32421:4;32459:2;32448:9;32444:18;32436:26;;32508:9;32502:4;32498:20;32494:1;32483:9;32479:17;32472:47;32536:131;32662:4;32536:131;:::i;:::-;32528:139;;32255:419;;;:::o;32680:169::-;32820:21;32816:1;32808:6;32804:14;32797:45;32680:169;:::o;32855:366::-;32997:3;33018:67;33082:2;33077:3;33018:67;:::i;:::-;33011:74;;33094:93;33183:3;33094:93;:::i;:::-;33212:2;33207:3;33203:12;33196:19;;32855:366;;;:::o;33227:419::-;33393:4;33431:2;33420:9;33416:18;33408:26;;33480:9;33474:4;33470:20;33466:1;33455:9;33451:17;33444:47;33508:131;33634:4;33508:131;:::i;:::-;33500:139;;33227:419;;;:::o;33652:241::-;33792:34;33788:1;33780:6;33776:14;33769:58;33861:24;33856:2;33848:6;33844:15;33837:49;33652:241;:::o;33899:366::-;34041:3;34062:67;34126:2;34121:3;34062:67;:::i;:::-;34055:74;;34138:93;34227:3;34138:93;:::i;:::-;34256:2;34251:3;34247:12;34240:19;;33899:366;;;:::o;34271:419::-;34437:4;34475:2;34464:9;34460:18;34452:26;;34524:9;34518:4;34514:20;34510:1;34499:9;34495:17;34488:47;34552:131;34678:4;34552:131;:::i;:::-;34544:139;;34271:419;;;:::o;34696:191::-;34736:4;34756:20;34774:1;34756:20;:::i;:::-;34751:25;;34790:20;34808:1;34790:20;:::i;:::-;34785:25;;34829:1;34826;34823:8;34820:34;;;34834:18;;:::i;:::-;34820:34;34879:1;34876;34872:9;34864:17;;34696:191;;;;:::o;34893:225::-;35033:34;35029:1;35021:6;35017:14;35010:58;35102:8;35097:2;35089:6;35085:15;35078:33;34893:225;:::o;35124:366::-;35266:3;35287:67;35351:2;35346:3;35287:67;:::i;:::-;35280:74;;35363:93;35452:3;35363:93;:::i;:::-;35481:2;35476:3;35472:12;35465:19;;35124:366;;;:::o;35496:419::-;35662:4;35700:2;35689:9;35685:18;35677:26;;35749:9;35743:4;35739:20;35735:1;35724:9;35720:17;35713:47;35777:131;35903:4;35777:131;:::i;:::-;35769:139;;35496:419;;;:::o;35921:147::-;36022:11;36059:3;36044:18;;35921:147;;;;:::o;36074:114::-;;:::o;36194:398::-;36353:3;36374:83;36455:1;36450:3;36374:83;:::i;:::-;36367:90;;36466:93;36555:3;36466:93;:::i;:::-;36584:1;36579:3;36575:11;36568:18;;36194:398;;;:::o;36598:379::-;36782:3;36804:147;36947:3;36804:147;:::i;:::-;36797:154;;36968:3;36961:10;;36598:379;;;:::o;36983:143::-;37040:5;37071:6;37065:13;37056:22;;37087:33;37114:5;37087:33;:::i;:::-;36983:143;;;;:::o;37132:351::-;37202:6;37251:2;37239:9;37230:7;37226:23;37222:32;37219:119;;;37257:79;;:::i;:::-;37219:119;37377:1;37402:64;37458:7;37449:6;37438:9;37434:22;37402:64;:::i;:::-;37392:74;;37348:128;37132:351;;;;:::o;37489:85::-;37534:7;37563:5;37552:16;;37489:85;;;:::o;37580:158::-;37638:9;37671:61;37689:42;37698:32;37724:5;37698:32;:::i;:::-;37689:42;:::i;:::-;37671:61;:::i;:::-;37658:74;;37580:158;;;:::o;37744:147::-;37839:45;37878:5;37839:45;:::i;:::-;37834:3;37827:58;37744:147;;:::o;37897:114::-;37964:6;37998:5;37992:12;37982:22;;37897:114;;;:::o;38017:184::-;38116:11;38150:6;38145:3;38138:19;38190:4;38185:3;38181:14;38166:29;;38017:184;;;;:::o;38207:132::-;38274:4;38297:3;38289:11;;38327:4;38322:3;38318:14;38310:22;;38207:132;;;:::o;38345:108::-;38422:24;38440:5;38422:24;:::i;:::-;38417:3;38410:37;38345:108;;:::o;38459:179::-;38528:10;38549:46;38591:3;38583:6;38549:46;:::i;:::-;38627:4;38622:3;38618:14;38604:28;;38459:179;;;;:::o;38644:113::-;38714:4;38746;38741:3;38737:14;38729:22;;38644:113;;;:::o;38793:732::-;38912:3;38941:54;38989:5;38941:54;:::i;:::-;39011:86;39090:6;39085:3;39011:86;:::i;:::-;39004:93;;39121:56;39171:5;39121:56;:::i;:::-;39200:7;39231:1;39216:284;39241:6;39238:1;39235:13;39216:284;;;39317:6;39311:13;39344:63;39403:3;39388:13;39344:63;:::i;:::-;39337:70;;39430:60;39483:6;39430:60;:::i;:::-;39420:70;;39276:224;39263:1;39260;39256:9;39251:14;;39216:284;;;39220:14;39516:3;39509:10;;38917:608;;;38793:732;;;;:::o;39531:831::-;39794:4;39832:3;39821:9;39817:19;39809:27;;39846:71;39914:1;39903:9;39899:17;39890:6;39846:71;:::i;:::-;39927:80;40003:2;39992:9;39988:18;39979:6;39927:80;:::i;:::-;40054:9;40048:4;40044:20;40039:2;40028:9;40024:18;40017:48;40082:108;40185:4;40176:6;40082:108;:::i;:::-;40074:116;;40200:72;40268:2;40257:9;40253:18;40244:6;40200:72;:::i;:::-;40282:73;40350:3;40339:9;40335:19;40326:6;40282:73;:::i;:::-;39531:831;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"1214":[{"start":2993,"length":32},{"start":7604,"length":32},{"start":10197,"length":32},{"start":13756,"length":32},{"start":13981,"length":32},{"start":14020,"length":32}],"1216":[{"start":4126,"length":32},{"start":6012,"length":32},{"start":7491,"length":32},{"start":10285,"length":32}]}}}}}}},"signatures":{"function":[{"signature":"addBots(address[])","signatureHash4":"0xd34628cc","signatureHash32":"0xd34628ccb9a559f7bd4001e0b00812f0c5d8dff7810a545c7a40607619c48d30"},{"signature":"allowance(address,address)","signatureHash4":"0xdd62ed3e","signatureHash32":"0xdd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4"},{"signature":"approve(address,uint256)","signatureHash4":"0x095ea7b3","signatureHash32":"0x095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba"},{"signature":"automatedMarketMakerPairs(address)","signatureHash4":"0xb62496f5","signatureHash32":"0xb62496f5586b0c70b3946286dabd06d9c4aaac9c7d149f02c247134232574805"},{"signature":"balanceOf(address)","signatureHash4":"0x70a08231","signatureHash32":"0x70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be"},{"signature":"buyDevFee()","signatureHash4":"0x9c3b4fdc","signatureHash32":"0x9c3b4fdc8b7076cd18b05680298db277036d9398b0544c4394ac5a38548bd217"},{"signature":"buyTotalFees()","signatureHash4":"0xd85ba063","signatureHash32":"0xd85ba06370d3c5684c8c50d47658e661d02f169f31a0b67e70d6adcc2762bcd8"},{"signature":"decimals()","signatureHash4":"0x313ce567","signatureHash32":"0x313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9"},{"signature":"decreaseAllowance(address,uint256)","signatureHash4":"0xa457c2d7","signatureHash32":"0xa457c2d77307f80ff2f3ac810ec99eb18ae2cffee13b29c90c9324546e374be5"},{"signature":"disableTransferDelay()","signatureHash4":"0xe884f260","signatureHash32":"0xe884f260ca2f4b522125ce22bbc036cc5aaa2f0e11eea21f8ea5cf03d376c967"},{"signature":"enableTrading()","signatureHash4":"0x8a8c523c","signatureHash32":"0x8a8c523cf6abd5a225b7b6dba3699cb1ceba2c68a62b1c38a7d3eb4369891d66"},{"signature":"enableTrading(uint256)","signatureHash4":"0x82aa7c68","signatureHash32":"0x82aa7c686de9498b6f084dfdbde1e6e20a16d1763589d9e16047339eb71599bb"},{"signature":"excludeFromFees(address,bool)","signatureHash4":"0xc0246668","signatureHash32":"0xc02466688b643621e56a323fc4929a4e3271bec2b2b29c9dfd6bb20ad8327b7d"},{"signature":"excludeFromMaxTransaction(address,bool)","signatureHash4":"0x7571336a","signatureHash32":"0x7571336a99ea80db54ad9d295520681c68459653ce0f560218beac5e7961684b"},{"signature":"increaseAllowance(address,uint256)","signatureHash4":"0x39509351","signatureHash32":"0x39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6"},{"signature":"isBot(address)","signatureHash4":"0x3bbac579","signatureHash32":"0x3bbac5791b22436eb23db34106829e6ecead1665607164a79eda5476495116ce"},{"signature":"isExcludedFromFees(address)","signatureHash4":"0x4fbee193","signatureHash32":"0x4fbee1939145572af317aaf028600b8cf6268c50711a7be0ca843a6161237d0c"},{"signature":"_isExcludedMaxTransactionAmount(address)","signatureHash4":"0x10d5de53","signatureHash32":"0x10d5de53b1a84114baea16cfb3d9539e19fda3de79c4d8715a91d6e3a3b8caf7"},{"signature":"limitsInEffect()","signatureHash4":"0x4a62bb65","signatureHash32":"0x4a62bb6557fde38c07d8c4eeb432cd1090b8b767b32e9e53810993215de6ea8a"},{"signature":"maxTransactionAmount()","signatureHash4":"0xc8c8ebe4","signatureHash32":"0xc8c8ebe4eb854d4819e9b49dd95b7c98a7561a145f964caea854d4c56e39b2b6"},{"signature":"maxWallet()","signatureHash4":"0xf8b45b05","signatureHash32":"0xf8b45b05bfbaef27e71c113eccc48866ca515a05cb6005d98fa3b2b91155689b"},{"signature":"name()","signatureHash4":"0x06fdde03","signatureHash32":"0x06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796"},{"signature":"owner()","signatureHash4":"0x8da5cb5b","signatureHash32":"0x8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d"},{"signature":"removeBots(address[])","signatureHash4":"0x6c3bbfd7","signatureHash32":"0x6c3bbfd782a63cfc54a348f033c788adc849b76a37733e7d415c2b5b945f7590"},{"signature":"removeLimits()","signatureHash4":"0x751039fc","signatureHash32":"0x751039fc54e1bd470751902c84973f500cca90fafece95beff65d8703be462e9"},{"signature":"renounceOwnership()","signatureHash4":"0x715018a6","signatureHash32":"0x715018a616b5f2044428f6fadb7deef4ce9ca76ef60ea57978964ad137bbe7ae"},{"signature":"sellDevFee()","signatureHash4":"0xa0d82dc5","signatureHash32":"0xa0d82dc53f49a222c6ca1c82918b8ffd0bd758f4965077bfcb519b05d8872a4a"},{"signature":"sellTotalFees()","signatureHash4":"0x6a486a8e","signatureHash32":"0x6a486a8e6a2c2b424ef572fc059213c42673b262b1373e01b0c38ccd9d5921f9"},{"signature":"setAutomatedMarketMakerPair(address,bool)","signatureHash4":"0x9a7a23d6","signatureHash32":"0x9a7a23d69e77f6f530abfa14ee34b4a9eca620bc2fa8a7e70358a6565de3f5a1"},{"signature":"swapTokensAtAmount()","signatureHash4":"0xe2f45605","signatureHash32":"0xe2f4560539b0e831f0bce162ae4000dc385918b23b57f6c13a0faaf469167da5"},{"signature":"symbol()","signatureHash4":"0x95d89b41","signatureHash32":"0x95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec"},{"signature":"tokensForDev()","signatureHash4":"0x9fccce32","signatureHash32":"0x9fccce32990e85ec7877cdbd6b1626418bddc4b33cbb5da4b4181663b04f94f1"},{"signature":"totalSupply()","signatureHash4":"0x18160ddd","signatureHash32":"0x18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932"},{"signature":"tradingActive()","signatureHash4":"0xbbc0c742","signatureHash32":"0xbbc0c742a9d86df40863a83b1e246a126bf7dd6e336618197d729591f72d8e1a"},{"signature":"transfer(address,uint256)","signatureHash4":"0xa9059cbb","signatureHash32":"0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"},{"signature":"transferDelayEnabled()","signatureHash4":"0xc876d0b9","signatureHash32":"0xc876d0b9c4c1df94c7a68e9df020be0ad1288eac5005a77d6858e0822a635713"},{"signature":"transferFrom(address,address,uint256)","signatureHash4":"0x23b872dd","signatureHash32":"0x23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b"},{"signature":"transferOwnership(address)","signatureHash4":"0xf2fde38b","signatureHash32":"0xf2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557"},{"signature":"uniswapV2Pair()","signatureHash4":"0x49bd5a5e","signatureHash32":"0x49bd5a5e6762be46b11034952bd84ae635f6077a3c1abed2fee4bfac4d249722"},{"signature":"uniswapV2Router()","signatureHash4":"0x1694505e","signatureHash32":"0x1694505e5e4acd84d3ad8a6f9903fdaf60e47d172a867ebf1cc6017c1f862119"},{"signature":"updateBuyFees(uint256)","signatureHash4":"0x71fc4688","signatureHash32":"0x71fc4688502347b6eb34332d72067e4b47414c93c5b7bb38f8f0975e17676926"},{"signature":"updateDevWallet(address)","signatureHash4":"0x1816467f","signatureHash32":"0x1816467f4e41d8dd27500ca11dc471852ca93f9b624c4d8d4430b8c4fa6424fa"},{"signature":"updateMaxTxnAmount(uint256)","signatureHash4":"0x203e727e","signatureHash32":"0x203e727e7696b0a4a28265b26e423bfb182e1ee923bb3190cc71f84cb60d72c5"},{"signature":"updateMaxWalletAmount(uint256)","signatureHash4":"0xc18bc195","signatureHash32":"0xc18bc195ff0bbcd02b0409e9e2dda65c6fc97ad832399b82d372f296c70859e9"},{"signature":"updateSellFees(uint256)","signatureHash4":"0xeba4c333","signatureHash32":"0xeba4c333d14d649867c48efec38828fe80dd2c80998e6dbba5ed55a09f263b46"},{"signature":"updateSwapTokensAtAmount(uint256)","signatureHash4":"0xd257b34f","signatureHash32":"0xd257b34fdf7eeb706269858301d00611994d17ee81844ea3c432a6a1e31952f6"}],"event":[{"signature":"Approval(address,address,uint256)","signatureHash4":"0x8c5be1e5","signatureHash32":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},{"signature":"devWalletUpdated(address,address)","signatureHash4":"0x90b8024c","signatureHash32":"0x90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743"},{"signature":"marketingWalletUpdated(address,address)","signatureHash4":"0xa7517879","signatureHash32":"0xa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674"},{"signature":"OwnershipTransferred(address,address)","signatureHash4":"0x8be0079c","signatureHash32":"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"},{"signature":"SwapAndLiquify(uint256,uint256,uint256)","signatureHash4":"0x17bbfb9a","signatureHash32":"0x17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561"},{"signature":"Transfer(address,address,uint256)","signatureHash4":"0xddf252ad","signatureHash32":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"}],"error":[]},"proxyResolution":{"isProxy":false,"proxyType":null,"implementations":[]},"match":"match","chainId":"56","address":"0x20d6015660b3fe52e6690a889b5C51F69902cE0e"}