60806040523480156200001157600080fd5b50604051620064e0380380620064e08339810160408190526200003491620002c2565b83836000620000448382620003e0565b506001620000538282620003e0565b505050620000706200006a620000df60201b60201c565b620000e3565b601e80546001600160a01b038085166001600160a01b031992831617909255601f805492841692909116919091179055600d54620000b0906001620004ac565b600d55620000d573c8ed02afebd9acb14c33b5330c803feacaf013776102b262000135565b50505050620004d4565b3390565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b0382168110156200017a57604051636f483d0960e01b81526001600160601b0383166004820152602481018290526044015b60405180910390fd5b6001600160a01b038316620001a657604051635b6cc80560e11b81526000600482015260240162000171565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600a55565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200020857600080fd5b81516001600160401b0380821115620002255762000225620001e0565b604051601f8301601f19908116603f01168101908282118183101715620002505762000250620001e0565b816040528381526020925086838588010111156200026d57600080fd5b600091505b8382101562000291578582018301518183018401529082019062000272565b600093810190920192909252949350505050565b80516001600160a01b0381168114620002bd57600080fd5b919050565b60008060008060808587031215620002d957600080fd5b84516001600160401b0380821115620002f157600080fd5b620002ff88838901620001f6565b955060208701519150808211156200031657600080fd5b506200032587828801620001f6565b9350506200033660408601620002a5565b91506200034660608601620002a5565b905092959194509250565b600181811c908216806200036657607f821691505b6020821081036200038757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003db57600081815260208120601f850160051c81016020861015620003b65750805b601f850160051c820191505b81811015620003d757828155600101620003c2565b5050505b505050565b81516001600160401b03811115620003fc57620003fc620001e0565b62000414816200040d845462000351565b846200038d565b602080601f8311600181146200044c5760008415620004335750858301515b600019600386901b1c1916600185901b178555620003d7565b600085815260208120601f198616915b828110156200047d578886015182559484019460019091019084016200045c565b50858210156200049c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004ce57634e487b7160e01b600052601160045260246000fd5b92915050565b615ffc80620004e46000396000f3fe608060405234801561001057600080fd5b506004361061032f5760003560e01c80638da5cb5b116101b4578063c87b56dd116100fa578063e943a2c71161009d578063e943a2c7146108c1578063e985e9c5146108f7578063e9b7a8601461090a578063f18332dd1461092d578063f2fde38b14610940578063f35c145214610953578063f6a85dd014610966578063fa92668a1461097957600080fd5b8063c87b56dd146107d4578063cb6d67e0146107e7578063d09502711461081d578063d3322d5314610842578063d374100014610855578063d3d5492814610878578063d9a03e381461089b578063e1fa8089146108ae57600080fd5b8063a22cb46511610162578063a22cb46514610716578063ad24102014610729578063af569fd41461073c578063b390c0ab1461075f578063b4b5b48f14610772578063b88d4fde14610785578063b990296814610798578063bcc405d0146107c157600080fd5b80638da5cb5b1461066b57806392f002331461067c578063945e549b1461068f57806394c14957146106b257806395d89b41146106e85780639a8490f3146106f05780639cac0f1f1461070357600080fd5b80634ab6897c116102795780636fa13531116102275780636fa13531146105c35780636fafdf83146105d657806370a08231146105f6578063715018a61461060957806373b40ae9146106115780637b5dbac51461062457806380f8c8ab1461063757806388c2dd081461065857600080fd5b80634ab6897c146104b35780634f6ccce7146104d35780635c91d74a146104e65780636352211e14610571578063663a3c00146105845780636799a46a1461058d5780636c6aab16146105a057600080fd5b806323b872dd116102e157806323b872dd146103ee5780632a55205a146104015780632ed330f7146104225780632f745c5914610445578063366b0ab21461045857806339143a1d1461046b5780633d2bed8d1461047e57806342842e0e146104a057600080fd5b806301ffc9a71461033457806306fdde031461035c578063074b553914610371578063081812fc14610394578063095ea7b3146103b457806318160ddd146103c95780631aab8d69146103db575b600080fd5b610347610342366004614b7d565b610999565b60405190151581526020015b60405180910390f35b6103646109aa565b6040516103539190614bea565b61034761037f366004614bfd565b60186020526000908152604090205460ff1681565b6103a76103a2366004614bfd565b610a3c565b6040516103539190614c16565b6103c76103c2366004614c41565b610a63565b005b6008545b604051908152602001610353565b6103c76103e9366004614c6b565b610b7d565b6103c76103fc366004614c97565b610d89565b61041461040f366004614cd3565b610dbb565b604051610353929190614cf5565b610347610430366004614bfd565b6000908152601c602052604090205460ff1690565b6103cd610453366004614c41565b610e67565b6103c7610466366004614bfd565b610efd565b6103c7610479366004614d0e565b61113e565b61049161048c366004614bfd565b611341565b60405161035393929190614d5f565b6103c76104ae366004614c97565b6114d2565b6103cd6104c1366004614bfd565b60009081526013602052604090205490565b6103cd6104e1366004614bfd565b6114ed565b6105356104f4366004614bfd565b6000908152600f60205260409020805460018201546002830154600384015460068501546007909501546001600160a01b0394851696939592949193911690565b604080516001600160a01b03978816815260208101969096528501939093526060840191909152608083015290911660a082015260c001610353565b6103a761057f366004614bfd565b611580565b6103cd600d5481565b6103c761059b366004614ea3565b6115b5565b6103cd6105ae366004614bfd565b6000908152600f602052604090206005015490565b6103646105d1366004614bfd565b61165f565b6103cd6105e4366004614bfd565b60176020526000908152604090205481565b6103cd610604366004614ee9565b61176f565b6103c76117f5565b6103c761061f366004614fb1565b611809565b6103c761063236600461511a565b611b61565b61064a610645366004614bfd565b611ec0565b604051610353929190615160565b6103c761066636600461518e565b611ffa565b600c546001600160a01b03166103a7565b6020546103a7906001600160a01b031681565b6103cd61069d366004614bfd565b6000908152600f602052604090206001015490565b6103cd6106c0366004614c6b565b60009182526016602090815260408084206001600160a01b0393909316845291905290205490565b6103646122cd565b6103c76106fe366004614ea3565b6122dc565b6103c76107113660046151c0565b612457565b6103c76107243660046151fa565b6124a9565b6103c7610737366004615231565b6124b8565b6103cd61074a366004614bfd565b6000908152600f602052604090206002015490565b6103c761076d366004614cd3565b612799565b610364610780366004614bfd565b61285e565b6103c761079336600461530d565b6128f8565b6103a76107a6366004614bfd565b6000908152600f60205260409020546001600160a01b031690565b6103c76107cf366004614bfd565b61292a565b6103646107e2366004614bfd565b612b6c565b6103cd6107f5366004614c6b565b60009182526015602090815260408084206001600160a01b0393909316845291905290205490565b61083061082b366004614bfd565b612e6b565b60405161035396959493929190615388565b6103c761085036600461540a565b6131fd565b610347610863366004614bfd565b60009081526011602052604090205460ff1690565b610347610886366004614bfd565b601d6020526000908152604090205460ff1681565b6103646108a9366004614bfd565b613324565b6103c76108bc36600461548c565b61333d565b6103cd6108cf366004614c6b565b60009182526014602090815260408084206001600160a01b0393909316845291905290205490565b6103476109053660046155d5565b6135c5565b6103cd610918366004614bfd565b6000908152600f602052604090206004015490565b6103cd61093b366004614bfd565b6135f3565b6103c761094e366004614ee9565b61361a565b6103c76109613660046155f1565b613693565b6103c7610974366004615659565b61375b565b6103cd610987366004614bfd565b60009081526012602052604090205490565b60006109a482613966565b92915050565b6060600080546109b99061567e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e59061567e565b8015610a325780601f10610a0757610100808354040283529160200191610a32565b820191906000526020600020905b815481529060010190602001808311610a1557829003601f168201915b5050505050905090565b6000610a478261398b565b506000908152600460205260409020546001600160a01b031690565b6000610a6e82611580565b9050806001600160a01b0316836001600160a01b031603610ae05760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610afc5750610afc81336135c5565b610b6e5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610ad7565b610b7883836139b0565b505050565b601e5460405163feb2e23360e01b8152631aab8d6960e01b916001600160a01b03169063feb2e23390610bb690339085906004016156b8565b602060405180830381865afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf791906156db565b151560011480610c795750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d5590610c32903390600401614c16565b602060405180830381865afa158015610c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7391906156db565b15156001145b610c955760405162461bcd60e51b8152600401610ad7906156f8565b816001600160a01b0316634cf0c6976040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf791906156db565b1515600114610d485760405162461bcd60e51b815260206004820152601a60248201527f436f6e7472616374206973206e6f742052616e646f6d697a65720000000000006044820152606401610ad7565b506000918252600f60205260409091206007810180546001600160a01b039093166001600160a01b0319938416811790915560089091018054909216179055565b610d94335b82613a1e565b610db05760405162461bcd60e51b8152600401610ad79061571d565b610b78838383613a7d565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610e30575060408051808201909152600a546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610e4f906001600160601b031687615780565b610e599190615797565b915196919550909350505050565b6000610e728361176f565b8210610ed45760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610ad7565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b601e5460405163feb2e23360e01b8152631b35855960e11b916001600160a01b03169063feb2e23390610f3690339085906004016156b8565b602060405180830381865afa158015610f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7791906156db565b151560011480610ff95750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d5590610fb2903390600401614c16565b602060405180830381865afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff391906156db565b15156001145b6110155760405162461bcd60e51b8152600401610ad7906156f8565b6000828152600f60209081526040918290206006015490549151639067b67760e01b81526004810185905290916001600160a01b031690639067b67790602401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109691906157b9565b6110a091906157d2565b42116110e45760405162461bcd60e51b8152602060048201526013602482015272151a5b59481a185cc81b9bdd081c185cdcd959606a1b6044820152606401610ad7565b6000828152600f6020526040902060028101546003909101819055600190611111846402540be400615780565b61111b91906157d2565b61112591906157e5565b6000928352600f60205260409092206005019190915550565b6020546001600160a01b031633146111685760405162461bcd60e51b8152600401610ad7906157f8565b6111728185613a1e565b61118e5760405162461bcd60e51b8152600401610ad79061571d565b6000838152600f60205260409020600201546111ab9060016157d2565b6000848152600f602052604090206002810182905560030154106113005760006111d485611580565b90506111df85613bdc565b6000868152601760205260409020546111f99060016157d2565b600087815260176020908152604080832093909355868252601481528282206001600160a01b0385168352905220546112339060016157d2565b60008581526014602090815260408083206001600160a01b0386168452825280832093909355878252601a90522080546112fa9189918491906112759061567e565b80601f01602080910402602001604051908101604052809291908181526020018280546112a19061567e565b80156112ee5780601f106112c3576101008083540402835291602001916112ee565b820191906000526020600020905b8154815290600101906020018083116112d157829003601f168201915b50505050508787613c6d565b50611339565b60405162461bcd60e51b815260206004820152600e60248201526d14dd5c1c1b1e481c995858da195960921b6044820152606401610ad7565b505050505050565b6000818152600e6020526040812060078101546006820180546060949385939160089091019083906113729061567e565b80601f016020809104026020016040519081016040528092919081815260200182805461139e9061567e565b80156113eb5780601f106113c0576101008083540402835291602001916113eb565b820191906000526020600020905b8154815290600101906020018083116113ce57829003601f168201915b5050505050925080805480602002602001604051908101604052809291908181526020016000905b828210156114bf5783829060005260206000200180546114329061567e565b80601f016020809104026020016040519081016040528092919081815260200182805461145e9061567e565b80156114ab5780601f10611480576101008083540402835291602001916114ab565b820191906000526020600020905b81548152906001019060200180831161148e57829003601f168201915b505050505081526020019060010190611413565b5050505090509250925092509193909250565b610b78838383604051806020016040528060008152506128f8565b60006114f860085490565b821061155b5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610ad7565b6008828154811061156e5761156e615839565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806109a45760405162461bcd60e51b8152600401610ad79061584f565b6000828152600f60205260409020546001600160a01b0316331480156115ea57506000828152601d602052604090205460ff16155b61162a5760405162461bcd60e51b8152602060048201526011602482015270139bdd08185c9d1a5cdd0bd4da59db9959607a1b6044820152606401610ad7565b600082815260196020526040902061164282826158c7565b50506000908152601d60205260409020805460ff19166001179055565b606061166a8261398b565b606060005b6000848152601260209081526040808320548352600e909152902060080154811015611707576000848152601260209081526040808320548352600e90915290206008018054839190839081106116c8576116c8615839565b906000526020600020016040516020016116e39291906159f9565b604051602081830303815290604052915080806116ff90615a17565b91505061166f565b5060008381526013602090815260409091205461172391613d24565b61172c84613ebf565b6000858152601a6020526040902061174386613f51565b84604051602001611758959493929190615a30565b604051602081830303815290604052915050919050565b60006001600160a01b0382166117d95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610ad7565b506001600160a01b031660009081526003602052604090205490565b6117fd6140d1565b611807600061412b565b565b601e54604051630cab15dd60e31b81528c916373b40ae960e01b916001600160a01b0390911690636558aee8906118469033908690600401614cf5565b602060405180830381865afa158015611863573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188791906156db565b15156001148061190b5750601e5460405163feb2e23360e01b81526001600160a01b039091169063feb2e233906118c490339085906004016156b8565b602060405180830381865afa1580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190591906156db565b15156001145b806119885750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d5590611941903390600401614c16565b602060405180830381865afa15801561195e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198291906156db565b15156001145b6119a45760405162461bcd60e51b8152600401610ad7906156f8565b60008d81526010602052604090205460ff16151560011480156119d6575060008d8152601c602052604090205460ff16155b6119f25760405162461bcd60e51b8152600401610ad7906156f8565b83620f424003611ad35760008d8152600e60205260409020611a148d826158c7565b5060008d8152600e60205260409020600101611a308c826158c7565b5060008d8152600e60205260409020600201611a4c8b826158c7565b5060008d8152600e60205260409020600301611a688a826158c7565b5060008d8152600e60205260409020600401611a8489826158c7565b5060008d8152600e60205260409020600601611aa087826158c7565b5060008d8152600e60209081526040909120600781018790558451611acd92600890920191860190614aaa565b50611b52565b83620f423f03611af85760008d8152600e60205260409020600501611acd88826158c7565b82600081518110611b0b57611b0b615839565b6020026020010151600e60008f81526020019081526020016000206008018581548110611b3a57611b3a615839565b906000526020600020019081611b5091906158c7565b505b50505050505050505050505050565b601e54604051630cab15dd60e31b81528691637b5dbac560e01b916001600160a01b0390911690636558aee890611b9e9033908690600401614cf5565b602060405180830381865afa158015611bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdf91906156db565b151560011480611c635750601e5460405163feb2e23360e01b81526001600160a01b039091169063feb2e23390611c1c90339085906004016156b8565b602060405180830381865afa158015611c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5d91906156db565b15156001145b80611ce05750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d5590611c99903390600401614c16565b602060405180830381865afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906156db565b15156001145b611cfc5760405162461bcd60e51b8152600401610ad7906156f8565b60008781526010602052604090205460ff1615156001148015611d2e57506000878152601c602052604090205460ff16155b8015611d3f57506402540be4008411155b611d795760405162461bcd60e51b815260206004820152600b60248201526a195c9c8bd99c99595e995960aa1b6044820152606401610ad7565b6000878152600f60205260408120600301549003611e48576000878152600f6020526040812080546001600160a01b0319166001600160a01b03891617815560018101879055600281019190915560038101859055600601839055611de3876402540be400615780565b6000888152600f6020526040902060040155600184611e07896402540be400615780565b611e1191906157d2565b611e1b91906157e5565b6000888152600f60209081526040808320600501939093556011905220805460ff19166001179055611eb7565b6000878152601d602052604081205460ff1615159003611e9b576000878152600f6020526040902080546001600160a01b0319166001600160a01b03881617815560018101869055600601839055611eb7565b6000878152600f60205260409020600181018690556006018390555b50505050505050565b6000818152601b602052604090208054606091829160018201908290611ee59061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054611f119061567e565b8015611f5e5780601f10611f3357610100808354040283529160200191611f5e565b820191906000526020600020905b815481529060010190602001808311611f4157829003601f168201915b50505050509150808054611f719061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9d9061567e565b8015611fea5780601f10611fbf57610100808354040283529160200191611fea565b820191906000526020600020905b815481529060010190602001808311611fcd57829003601f168201915b5050505050905091509150915091565b601e5460405163feb2e23360e01b81526311185ba160e31b916001600160a01b03169063feb2e2339061203390339085906004016156b8565b602060405180830381865afa158015612050573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207491906156db565b1515600114806120f65750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d55906120af903390600401614c16565b602060405180830381865afa1580156120cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f091906156db565b15156001145b6121125760405162461bcd60e51b8152600401610ad7906156f8565b8260ff166001036121de57816001600160a01b0316639068edac6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f91906156db565b15156001146121bc5760405162461bcd60e51b81526020600482015260096024820152682737ba1020b236b4b760b91b6044820152606401610ad7565b601e80546001600160a01b0384166001600160a01b0319909116179055505050565b8260ff166002036122ab57816001600160a01b031663fb9422ff6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224b91906156db565b15156001146122895760405162461bcd60e51b815260206004820152600a6024820152692737ba1026b4b73a32b960b11b6044820152606401610ad7565b602080546001600160a01b0384166001600160a01b0319909116179055505050565b601f80546001600160a01b0384166001600160a01b0319909116179055505050565b6060600180546109b99061567e565b601e5460405163feb2e23360e01b8152639a8490f360e01b916001600160a01b03169063feb2e2339061231590339085906004016156b8565b602060405180830381865afa158015612332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235691906156db565b1515600114806123d85750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d5590612391903390600401614c16565b602060405180830381865afa1580156123ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d291906156db565b15156001145b6123f45760405162461bcd60e51b8152600401610ad7906156f8565b6000838152601260209081526040808320548352601c90915290205460ff16156124305760405162461bcd60e51b8152600401610ad790615b1c565b6124398361398b565b6000838152601a6020526040902061245183826158c7565b50505050565b6000838152600f60205260409020600701546001600160a01b0316331461247d57600080fd5b6000828152601360205260409020541561249657600080fd5b6000918252601360205260409091205550565b6124b433838361417d565b5050565b601e5460405163feb2e23360e01b8152630569208160e51b916001600160a01b03169063feb2e233906124f190339085906004016156b8565b602060405180830381865afa15801561250e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253291906156db565b1515600114806125b45750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d559061256d903390600401614c16565b602060405180830381865afa15801561258a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ae91906156db565b15156001145b6125d05760405162461bcd60e51b8152600401610ad7906156f8565b825184511480156125e2575081518351145b6126185760405162461bcd60e51b815260206004820152600760248201526634b73b103632b760c91b6044820152606401610ad7565b60005b845181101561279257601c60006012600088858151811061263e5761263e615839565b6020026020010151815260200190815260200160002054815260200190815260200160002060009054906101000a900460ff16151560001515146126945760405162461bcd60e51b8152600401610ad790615b1c565b6126b68582815181106126a9576126a9615839565b602002602001015161398b565b8381815181106126c8576126c8615839565b6020026020010151601b60008784815181106126e6576126e6615839565b6020026020010151815260200190815260200160002060006002811061270e5761270e615839565b019061271a90826158c7565b5082818151811061272d5761272d615839565b6020026020010151601b600087848151811061274b5761274b615839565b6020026020010151815260200190815260200160002060016002811061277357612773615839565b019061277f90826158c7565b508061278a81615a17565b91505061261b565b5050505050565b6127a233610d8e565b6127be5760405162461bcd60e51b8152600401610ad79061571d565b6000828152600f602052604090206004015481108015906127f057506000828152600f60205260409020600501548111155b6128255760405162461bcd60e51b815260206004820152600660248201526534b21032b93960d11b6044820152606401610ad7565b61282e81613bdc565b6000828152601760205260409020546128489060016157d2565b6000928352601760205260409092209190915550565b601a60205260009081526040902080546128779061567e565b80601f01602080910402602001604051908101604052809291908181526020018280546128a39061567e565b80156128f05780601f106128c5576101008083540402835291602001916128f0565b820191906000526020600020905b8154815290600101906020018083116128d357829003601f168201915b505050505081565b6129023383613a1e565b61291e5760405162461bcd60e51b8152600401610ad79061571d565b61245184848484614247565b601e5460405163feb2e23360e01b8152630bcc405d60e41b916001600160a01b03169063feb2e2339061296390339085906004016156b8565b602060405180830381865afa158015612980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a491906156db565b151560011480612a265750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d55906129df903390600401614c16565b602060405180830381865afa1580156129fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2091906156db565b15156001145b612a425760405162461bcd60e51b8152600401610ad7906156f8565b602054604051639067b67760e01b8152600481018490526001600160a01b0390911690639067b67790602401602060405180830381865afa158015612a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aaf91906157b9565b42118015612b285750602054604051639067b67760e01b8152600481018490526001600160a01b0390911690639067b67790602401602060405180830381865afa158015612b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2591906157b9565b15155b8015612b47575060008281526011602052604090205460ff1615156001145b612b5057600080fd5b506000908152601c60205260409020805460ff19166001179055565b6060612b778261398b565b6000828152601260209081526040808320548352601890915290205460ff16158015612bb0575060008281526013602052604090205415155b15612c9e576000828152601260209081526040808320548352600e90915281206005018054612bde9061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054612c0a9061567e565b8015612c575780601f10612c2c57610100808354040283529160200191612c57565b820191906000526020600020905b815481529060010190602001808311612c3a57829003601f168201915b505050505090506000815111612c7c5760405180602001604052806000815250612c97565b80612c8684613ebf565b604051602001611758929190615b41565b9392505050565b6000828152601260209081526040808320548352601890915290205460ff16158015612cd65750600082815260136020526040902054155b15612db3576000828152601260209081526040808320548352600e90915281206005018054612d049061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054612d309061567e565b8015612d7d5780601f10612d5257610100808354040283529160200191612d7d565b820191906000526020600020905b815481529060010190602001808311612d6057829003601f168201915b505050505090506000815111612da25760405180602001604052806000815250612c97565b806040516020016117589190615b70565b6000828152601260209081526040808320548352600e9091528120612e0390600601612dde8561165f565b604051602001612def929190615b9b565b60405160208183030381529060405261427a565b90506000612e10846143cc565b6000858152601260209081526040808320548352600e8252808320888452601b8352928190209051612e4e9493600201926001830191889101615c38565b60408051601f19818403018152919052949350505050565b919050565b6000818152600e60205260409020805460609182918291829182918291600182019060028301906003840190600485019060058601908690612eac9061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054612ed89061567e565b8015612f255780601f10612efa57610100808354040283529160200191612f25565b820191906000526020600020905b815481529060010190602001808311612f0857829003601f168201915b50505050509550848054612f389061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054612f649061567e565b8015612fb15780601f10612f8657610100808354040283529160200191612fb1565b820191906000526020600020905b815481529060010190602001808311612f9457829003601f168201915b50505050509450838054612fc49061567e565b80601f0160208091040260200160405190810160405280929190818152602001828054612ff09061567e565b801561303d5780601f106130125761010080835404028352916020019161303d565b820191906000526020600020905b81548152906001019060200180831161302057829003601f168201915b505050505093508280546130509061567e565b80601f016020809104026020016040519081016040528092919081815260200182805461307c9061567e565b80156130c95780601f1061309e576101008083540402835291602001916130c9565b820191906000526020600020905b8154815290600101906020018083116130ac57829003601f168201915b505050505092508180546130dc9061567e565b80601f01602080910402602001604051908101604052809291908181526020018280546131089061567e565b80156131555780601f1061312a57610100808354040283529160200191613155565b820191906000526020600020905b81548152906001019060200180831161313857829003601f168201915b505050505091508080546131689061567e565b80601f01602080910402602001604051908101604052809291908181526020018280546131949061567e565b80156131e15780601f106131b6576101008083540402835291602001916131e1565b820191906000526020600020905b8154815290600101906020018083116131c457829003601f168201915b5050505050905095509550955095509550955091939550919395565b6020546001600160a01b031633146132275760405162461bcd60e51b8152600401610ad7906157f8565b6000828152600f60205260409020600201546132449060016157d2565b6000838152600f6020526040902060028101829055600301541061130057806001036132c05760008281526015602090815260408083206001600160a01b038a1684529091529020546132989060016157d2565b60008381526015602090815260408083206001600160a01b038b168452909152902055613312565b60008281526014602090815260408083206001600160a01b038a1684529091529020546132ee9060016157d2565b60008381526014602090815260408083206001600160a01b038b1684529091529020555b61331f8786868587613c6d565b611eb7565b601960205260009081526040902080546128779061567e565b601e5460405163feb2e23360e01b815263e1fa808960e01b916001600160a01b03169063feb2e2339061337690339085906004016156b8565b602060405180830381865afa158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b791906156db565b1515600114806134395750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d55906133f2903390600401614c16565b602060405180830381865afa15801561340f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343391906156db565b15156001145b6134555760405162461bcd60e51b8152600401610ad7906156f8565b600d546000908152600e602052604090206134708b826158c7565b50600d546000908152600e6020526040902060010161348f8a826158c7565b50600d546000908152600e602052604090206002016134ae89826158c7565b50600d546000908152600e602052604090206003016134cd88826158c7565b50600d546000908152600e602052604090206004016134ec87826158c7565b50600d546000908152600e6020526040902060050161350b86826158c7565b50600d546000908152600e6020526040902060060161352a85826158c7565b50600d80546000908152600e6020908152604080832060070187905592548252919020835161356192600890920191850190614aaa565b50600d8054600090815260106020526040808220805460ff19166001179055915491517f5baee347cce9899b119eb4f42984958a6e25dc5b505f4f1ab8f3837120cf241f9190a2600d546135b69060016157d2565b600d5550505050505050505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600081815260176020908152604080832054600f9092528220600201546109a491906157e5565b6136226140d1565b6001600160a01b0381166136875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad7565b6136908161412b565b50565b6020546001600160a01b031633146136bd5760405162461bcd60e51b8152600401610ad7906157f8565b6000818152600f60205260409020600201546136da9060016157d2565b6000828152600f602052604090206002810182905560030154106113005760008181526016602090815260408083206001600160a01b03881684529091529020546137269060016157d2565b60008281526016602090815260408083206001600160a01b03891684529091529020556137568585858486613c6d565b612792565b601e54604051630cab15dd60e31b81528391630f6a85dd60e41b916001600160a01b0390911690636558aee8906137989033908690600401614cf5565b602060405180830381865afa1580156137b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137d991906156db565b15156001148061385d5750601e5460405163feb2e23360e01b81526001600160a01b039091169063feb2e2339061381690339085906004016156b8565b602060405180830381865afa158015613833573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385791906156db565b15156001145b806138da5750601e5460405163b3076d5560e01b81526001600160a01b039091169063b3076d5590613893903390600401614c16565b602060405180830381865afa1580156138b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d491906156db565b15156001145b6138f65760405162461bcd60e51b8152600401610ad7906156f8565b60008481526010602052604090205460ff161515600114801561392857506000848152601c602052604090205460ff16155b6139445760405162461bcd60e51b8152600401610ad7906156f8565b5050600091825260186020526040909120805460ff1916911515919091179055565b60006001600160e01b0319821663152a902d60e11b14806109a457506109a482614431565b61399481614456565b6136905760405162461bcd60e51b8152600401610ad79061584f565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139e582611580565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080613a2a83611580565b9050806001600160a01b0316846001600160a01b03161480613a515750613a5181856135c5565b80613a755750836001600160a01b0316613a6a84610a3c565b6001600160a01b0316145b949350505050565b826001600160a01b0316613a9082611580565b6001600160a01b031614613ab65760405162461bcd60e51b8152600401610ad790615d55565b6001600160a01b038216613b185760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad7565b613b258383836001614473565b826001600160a01b0316613b3882611580565b6001600160a01b031614613b5e5760405162461bcd60e51b8152600401610ad790615d55565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526003855283862080546000190190559087168086528386208054600101905586865260029094528285208054909216841790915590518493600080516020615fa783398151915291a4505050565b6000613be782611580565b9050613bf7816000846001614473565b613c0082611580565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552600384528285208054600019019055878552600290935281842080549091169055519293508492600080516020615fa7833981519152908390a45050565b6000858152601a60205260409020613c8584826158c7565b506000858152601260205260409020829055613ca1848661459b565b6000828152600f60205260409081902060080154905163bf1b89d360e01b81526004810184905260248101879052604481018390526001600160a01b039091169063bf1b89d390606401600060405180830381600087803b158015613d0557600080fd5b505af1158015613d19573d6000803e3d6000fd5b505050505050505050565b60606000613d33836002615780565b613d3e9060026157d2565b6001600160401b03811115613d5557613d55614dd8565b6040519080825280601f01601f191660200182016040528015613d7f576020820181803683370190505b509050600360fc1b81600081518110613d9a57613d9a615839565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613dc957613dc9615839565b60200101906001600160f81b031916908160001a9053506000613ded846002615780565b613df89060016157d2565b90505b6001811115613e70576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613e2c57613e2c615839565b1a60f81b828281518110613e4257613e42615839565b60200101906001600160f81b031916908160001a90535060049490941c93613e6981615d9a565b9050613dfb565b508315612c975760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ad7565b60606000613ecc836145b5565b60010190506000816001600160401b03811115613eeb57613eeb614dd8565b6040519080825280601f01601f191660200182016040528015613f15576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613f1f57509392505050565b60608060005b601f546000858152601260209081526040808320548352600e90915290819020600701549051632b345e2f60e11b81526001600160a01b0390921691635668bc5e91613fa99160040190815260200190565b602060405180830381865afa158015613fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fea91906157b9565b8110156140bf57601f546000858152601260209081526040808320548352600e9091529081902060070154905163518cb3df60e01b815260048101919091526024810183905283916001600160a01b03169063518cb3df90604401600060405180830381865afa158015614062573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261408a9190810190615db1565b60405160200161409b929190615b41565b604051602081830303815290604052915080806140b790615a17565b915050613f57565b50806040516020016117589190615e1e565b600c546001600160a01b031633146118075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ad7565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036141da5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610ad7565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b614252848484613a7d565b61425e8484848461468d565b6124515760405162461bcd60e51b8152600401610ad790615e3a565b6060815160000361429957505060408051602081019091526000815290565b6000604051806060016040528060408152602001615f6760409139905060006003845160026142c891906157d2565b6142d29190615797565b6142dd906004615780565b6001600160401b038111156142f4576142f4614dd8565b6040519080825280601f01601f19166020018201604052801561431e576020820181803683370190505b509050600182016020820185865187015b8082101561438a576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f811685015184535060018301925061432f565b50506003865106600181146143a657600281146143b9576143c1565b603d6001830353603d60028303536143c1565b603d60018303535b509195945050505050565b6000818152601260209081526040808320548352600f909152812060040154606091906143f990846157e5565b6000848152601260209081526040808320548352600e909152902090915061442082613ebf565b604051602001611758929190615e8c565b60006001600160e01b0319821663780e9d6360e01b14806109a457506109a48261478e565b6000908152600260205260409020546001600160a01b0316151590565b60018111156144e25760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610ad7565b816001600160a01b03851661453e5761453981600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b614561565b836001600160a01b0316856001600160a01b0316146145615761456185826147de565b6001600160a01b038416614578576137568161487b565b846001600160a01b0316846001600160a01b03161461279257612792848261492a565b6124b482826040518060200160405280600081525061496e565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106145f45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614620576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061463e57662386f26fc10000830492506010015b6305f5e1008310614656576305f5e100830492506008015b612710831061466a57612710830492506004015b6064831061467c576064830492506002015b600a83106109a45760010192915050565b60006001600160a01b0384163b1561478357604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906146d1903390899088908890600401615ebf565b6020604051808303816000875af192505050801561470c575060408051601f3d908101601f1916820190925261470991810190615efc565b60015b614769573d80801561473a576040519150601f19603f3d011682016040523d82523d6000602084013e61473f565b606091505b5080516000036147615760405162461bcd60e51b8152600401610ad790615e3a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050613a75565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b14806147bf57506001600160e01b03198216635b5e139f60e01b145b806109a457506301ffc9a760e01b6001600160e01b03198316146109a4565b600060016147eb8461176f565b6147f591906157e5565b600083815260076020526040902054909150808214614848576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061488d906001906157e5565b600083815260096020526040812054600880549394509092849081106148b5576148b5615839565b9060005260206000200154905080600883815481106148d6576148d6615839565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061490e5761490e615f19565b6001900381819060005260206000200160009055905550505050565b60006149358361176f565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b61497883836149a1565b614985600084848461468d565b610b785760405162461bcd60e51b8152600401610ad790615e3a565b6001600160a01b0382166149f75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610ad7565b614a0081614456565b15614a1d5760405162461bcd60e51b8152600401610ad790615f2f565b614a2b600083836001614473565b614a3481614456565b15614a515760405162461bcd60e51b8152600401610ad790615f2f565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b031916841790555183929190600080516020615fa7833981519152908290a45050565b828054828255906000526020600020908101928215614af0579160200282015b82811115614af05782518290614ae090826158c7565b5091602001919060010190614aca565b50614afc929150614b00565b5090565b80821115614afc576000614b148282614b1d565b50600101614b00565b508054614b299061567e565b6000825580601f10614b39575050565b601f01602090049060005260206000209081019061369091905b80821115614afc5760008155600101614b53565b6001600160e01b03198116811461369057600080fd5b600060208284031215614b8f57600080fd5b8135612c9781614b67565b60005b83811015614bb5578181015183820152602001614b9d565b50506000910152565b60008151808452614bd6816020860160208601614b9a565b601f01601f19169290920160200192915050565b602081526000612c976020830184614bbe565b600060208284031215614c0f57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b80356001600160a01b0381168114612e6657600080fd5b60008060408385031215614c5457600080fd5b614c5d83614c2a565b946020939093013593505050565b60008060408385031215614c7e57600080fd5b82359150614c8e60208401614c2a565b90509250929050565b600080600060608486031215614cac57600080fd5b614cb584614c2a565b9250614cc360208501614c2a565b9150604084013590509250925092565b60008060408385031215614ce657600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b60008060008060008060c08789031215614d2757600080fd5b8635955060208701359450604087013593506060870135925060808701359150614d5360a08801614c2a565b90509295509295509295565b606081526000614d726060830186614bbe565b6020858185015283820360408501528185518084528284019150828160051b85010183880160005b83811015614dc857601f19878403018552614db6838351614bbe565b94860194925090850190600101614d9a565b50909a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614e1657614e16614dd8565b604052919050565b60006001600160401b03821115614e3757614e37614dd8565b50601f01601f191660200190565b6000614e58614e5384614e1e565b614dee565b9050828152838383011115614e6c57600080fd5b828260208301376000602084830101529392505050565b600082601f830112614e9457600080fd5b612c9783833560208501614e45565b60008060408385031215614eb657600080fd5b8235915060208301356001600160401b03811115614ed357600080fd5b614edf85828601614e83565b9150509250929050565b600060208284031215614efb57600080fd5b612c9782614c2a565b60006001600160401b03821115614f1d57614f1d614dd8565b5060051b60200190565b600082601f830112614f3857600080fd5b81356020614f48614e5383614f04565b82815260059290921b84018101918181019086841115614f6757600080fd5b8286015b84811015614fa65780356001600160401b03811115614f8a5760008081fd5b614f988986838b0101614e83565b845250918301918301614f6b565b509695505050505050565b60008060008060008060008060008060006101608c8e031215614fd357600080fd5b8b359a506001600160401b038060208e01351115614ff057600080fd5b6150008e60208f01358f01614e83565b9a508060408e0135111561501357600080fd5b6150238e60408f01358f01614e83565b99508060608e0135111561503657600080fd5b6150468e60608f01358f01614e83565b98508060808e0135111561505957600080fd5b6150698e60808f01358f01614e83565b97508060a08e0135111561507c57600080fd5b61508c8e60a08f01358f01614e83565b96508060c08e0135111561509f57600080fd5b6150af8e60c08f01358f01614e83565b95508060e08e013511156150c257600080fd5b6150d28e60e08f01358f01614e83565b94506101008d013593506101208d01359250806101408e013511156150f657600080fd5b506151088d6101408e01358e01614f27565b90509295989b509295989b9093969950565b600080600080600060a0868803121561513257600080fd5b8535945061514260208701614c2a565b94979496505050506040830135926060810135926080909101359150565b6040815260006151736040830185614bbe565b82810360208401526151858185614bbe565b95945050505050565b600080604083850312156151a157600080fd5b823560ff811681146151b257600080fd5b9150614c8e60208401614c2a565b6000806000606084860312156151d557600080fd5b505081359360208301359350604090920135919050565b801515811461369057600080fd5b6000806040838503121561520d57600080fd5b61521683614c2a565b91506020830135615226816151ec565b809150509250929050565b60008060006060848603121561524657600080fd5b83356001600160401b038082111561525d57600080fd5b818601915086601f83011261527157600080fd5b81356020615281614e5383614f04565b82815260059290921b8401810191818101908a8411156152a057600080fd5b948201945b838610156152be578535825294820194908201906152a5565b975050870135925050808211156152d457600080fd5b6152e087838801614f27565b935060408601359150808211156152f657600080fd5b5061530386828701614f27565b9150509250925092565b6000806000806080858703121561532357600080fd5b61532c85614c2a565b935061533a60208601614c2a565b92506040850135915060608501356001600160401b0381111561535c57600080fd5b8501601f8101871361536d57600080fd5b61537c87823560208401614e45565b91505092959194509250565b60c08152600061539b60c0830189614bbe565b82810360208401526153ad8189614bbe565b905082810360408401526153c18188614bbe565b905082810360608401526153d58187614bbe565b905082810360808401526153e98186614bbe565b905082810360a08401526153fd8185614bbe565b9998505050505050505050565b600080600080600080600060e0888a03121561542557600080fd5b8735965061543560208901614c2a565b955061544360408901614c2a565b945060608801356001600160401b0381111561545e57600080fd5b61546a8a828b01614e83565b979a969950949760808101359660a0820135965060c090910135945092505050565b60008060008060008060008060006101208a8c0312156154ab57600080fd5b89356001600160401b03808211156154c257600080fd5b6154ce8d838e01614e83565b9a5060208c01359150808211156154e457600080fd5b6154f08d838e01614e83565b995060408c013591508082111561550657600080fd5b6155128d838e01614e83565b985060608c013591508082111561552857600080fd5b6155348d838e01614e83565b975060808c013591508082111561554a57600080fd5b6155568d838e01614e83565b965060a08c013591508082111561556c57600080fd5b6155788d838e01614e83565b955060c08c013591508082111561558e57600080fd5b61559a8d838e01614e83565b945060e08c013593506101008c01359150808211156155b857600080fd5b506155c58c828d01614f27565b9150509295985092959850929598565b600080604083850312156155e857600080fd5b6151b283614c2a565b600080600080600060a0868803121561560957600080fd5b8535945061561960208701614c2a565b935060408601356001600160401b0381111561563457600080fd5b61564088828901614e83565b9598949750949560608101359550608001359392505050565b6000806040838503121561566c57600080fd5b823591506020830135615226816151ec565b600181811c9082168061569257607f821691505b6020821081036156b257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b039290921682526001600160e01b031916602082015260400190565b6000602082840312156156ed57600080fd5b8151612c97816151ec565b6020808252600b908201526a139bdd08185b1b1bddd95960aa1b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109a4576109a461576a565b6000826157b457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156157cb57600080fd5b5051919050565b808201808211156109a4576109a461576a565b818103818111156109a4576109a461576a565b60208082526021908201527f43616c6c6572206973206e6f7420746865204d696e74657220436f6e747261636040820152601d60fa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b601f821115610b7857600081815260208120601f850160051c810160208610156158a85750805b601f850160051c820191505b81811015611339578281556001016158b4565b81516001600160401b038111156158e0576158e0614dd8565b6158f4816158ee845461567e565b84615881565b602080601f83116001811461592957600084156159115750858301515b600019600386901b1c1916600185901b178555611339565b600085815260208120601f198616915b8281101561595857888601518255948401946001909101908401615939565b50858210156159765787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600081546159938161567e565b600182811680156159ab57600181146159c0576159ef565b60ff19841687528215158302870194506159ef565b8560005260208060002060005b858110156159e65781548a8201529084019082016159cd565b50505082870194505b5050505092915050565b60008351615a0b818460208801614b9a565b61518581840185615986565b600060018201615a2957615a2961576a565b5060010190565b696c657420686173683d2760b01b815260008651615a5581600a850160208b01614b9a565b6d273b6c657420746f6b656e49643d60901b600a918401918201528651615a83816018840160208b01614b9a565b6f3b6c657420746f6b656e446174613d5b60801b60189290910191820152615aae6028820187615986565b9050605d60f81b8152763b6c657420646570656e64656e63795363726970743d2760481b60018201528451615aea816018840160208901614b9a565b61273b60f01b601892909101918201528351615b0d81601a840160208801614b9a565b01601a01979650505050505050565b6020808252600b908201526a2230ba3090333937bd32b760a91b604082015260600190565b60008351615b53818460208801614b9a565b835190830190615b67818360208801614b9a565b01949350505050565b60008251615b82818460208701614b9a565b6670656e64696e6760c81b920191825250600701919050565b7f3c68746d6c3e3c686561643e3c2f686561643e3c626f64793e3c7363726970748152651039b9319e9160d11b60208201526000615bdc6026830185615986565b72111f1e17b9b1b934b83a1f1e39b1b934b83a1f60691b81528351615c08816013840160208801614b9a565b761e17b9b1b934b83a1f1e17b137b23c9f1e17b43a36b61f60491b60139290910191820152602a01949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81526332911d1160e11b602082015260008651615c7d816024850160208b01614b9a565b701116113232b9b1b934b83a34b7b7111d1160791b602491840191820152615ca86035820188615986565b6a11161134b6b0b3b2911d1160a91b81529050615cc8600b820187615986565b6f222c2261747472696275746573223a5b60801b81529050615ced6010820186615986565b90507f5d2c22616e696d6174696f6e5f75726c223a22646174613a746578742f68746d8152681b0ed8985cd94d8d0b60ba1b60208201528351615d37816029840160208801614b9a565b61227d60f01b60299290910191820152602b01979650505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b600081615da957615da961576a565b506000190190565b600060208284031215615dc357600080fd5b81516001600160401b03811115615dd957600080fd5b8201601f81018413615dea57600080fd5b8051615df8614e5382614e1e565b818152856020838501011115615e0d57600080fd5b615185826020830160208601614b9a565b60008251615e30818460208701614b9a565b9190910192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000615e988285615986565b61202360f01b81528351615eb3816002840160208801614b9a565b01600201949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615ef290830184614bbe565b9695505050505050565b600060208284031215615f0e57600080fd5b8151612c9781614b67565b634e487b7160e01b600052603160045260246000fd5b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060408201526060019056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220553a932b4f55e5f0ac803f0e5f28fa7127d87f742b023076bf4446443e348b6464736f6c63430008130033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000da8d7a00d222b223e6152b22ffe97ca1778e5f38000000000000000000000000b569780dbf52070e727f66514efb5721825fc2e9000000000000000000000000000000000000000000000000000000000000001444656d6f2047656e20436f6c6c656374696f6e7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e44454d4f000000000000000000000000000000000000000000000000000000