0x608060405234801561001057600080fd5b50613083806100206000396000f3fe60806040526004361061016a5760003560e01c80637cd6d402116100d1578063abdf9e381161008a578063b4e6147911610064578063b4e61479146104fe578063b70485fb14610521578063d73e522414610541578063e0af36161461056e57600080fd5b8063abdf9e381461047f578063b32e72011461049f578063b33fe011146104bf57600080fd5b80637cd6d4021461034b57806396d3f520146103945780639701e719146103b4578063a18f6fb5146103d4578063a4063dbc146103f4578063a5d0bcff1461045f57600080fd5b806330a402c01161012357806330a402c01461026e5780634a377e1d146102a65780634b442b90146102c6578063587f5ed7146102f55780637316c7871461030b5780637455bf541461032b57600080fd5b80630d1e89e5146101ae578063109e32cf146101d0578063120784ac146101e5578063142b52b9146102055780631b572b911461022557806326232a2e1461024557600080fd5b366101a957604080513381523460208201527f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b910160405180910390a1005b600080fd5b3480156101ba57600080fd5b506101ce6101c9366004612a0c565b61058e565b005b3480156101dc57600080fd5b506101ce6107e5565b3480156101f157600080fd5b506101ce610200366004612a39565b610935565b34801561021157600080fd5b506101ce610220366004612a72565b61098d565b34801561023157600080fd5b506101ce610240366004612ab6565b610a00565b34801561025157600080fd5b5061025b60015481565b6040519081526020015b60405180910390f35b34801561027a57600080fd5b5060035461028e906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b3480156102b257600080fd5b5060055461028e906001600160a01b031681565b3480156102d257600080fd5b506102e66102e1366004612b2e565b610ddf565b60405161026593929190612bbd565b34801561030157600080fd5b5061025b60045481565b34801561031757600080fd5b506101ce610326366004612c00565b610fa3565b34801561033757600080fd5b5060025461028e906001600160a01b031681565b34801561035757600080fd5b5061037f610366366004612b2e565b600b602052600090815260409020805460019091015482565b60408051928352602083019190915201610265565b3480156103a057600080fd5b506101ce6103af366004612c70565b6111ef565b3480156103c057600080fd5b506101ce6103cf366004612ccf565b611695565b3480156103e057600080fd5b506101ce6103ef366004612a72565b611817565b34801561040057600080fd5b5061043a61040f366004612a72565b6008602052600090815260409020805460018201546003909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610265565b34801561046b57600080fd5b506101ce61047a366004612b2e565b61188a565b34801561048b57600080fd5b506101ce61049a366004612a72565b6118b9565b3480156104ab57600080fd5b5060065461028e906001600160a01b031681565b3480156104cb57600080fd5b5061037f6104da366004612ccf565b60096020908152600092835260408084209091529082529020805460019091015482565b34801561050a57600080fd5b50610513611954565b604051610265929190612cf4565b34801561052d57600080fd5b506101ce61053c366004612d22565b611a9a565b34801561054d57600080fd5b5061025b61055c366004612a72565b600a6020526000908152604090205481565b34801561057a57600080fd5b5060075461028e906001600160a01b031681565b600054610100900460ff16158080156105ae5750600054600160ff909116105b806105c85750303b1580156105c8575060005460ff166001145b6106305760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610653576000805461ff0019166101001790555b81356001556106686040830160208401612a72565b600280546001600160a01b0319166001600160a01b039290921691909117905561069860a0830160808401612a72565b600380546001600160a01b0319166001600160a01b03929092169190911790556106c86060830160408401612a72565b600580546001600160a01b0319166001600160a01b03929092169190911790556106f86080830160608401612a72565b600680546001600160a01b0319166001600160a01b03928316179055600554604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a9190612d57565b600780546001600160a01b0319166001600160a01b039290921691909117905580156107e1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b6003546001600160a01b0316331461080f576040516282b42960e81b815260040160405180910390fd5b600454806108545760405162461bcd60e51b81526020600482015260126024820152712737903332b2b9903a37903932b1b7bb32b960711b6044820152606401610627565b6003546040516000916001600160a01b03169083908381818185875af1925050503d80600081146108a1576040519150601f19603f3d011682016040523d82523d6000602084013e6108a6565b606091505b50509050806108ed5760405162461bcd60e51b81526020600482015260136024820152724661696c656420746f2073656e64206665657360681b6044820152606401610627565b6000600455600354604080516001600160a01b039092168252602082018490527f54cbbf325cb35a33d3287d0ad295b6b29e6bb7c780f63cd0f2660778489e085891016107d8565b6002546001600160a01b0316331461095f576040516282b42960e81b815260040160405180910390fd5b600580546001600160a01b039384166001600160a01b03199182161790915560068054929093169116179055565b6003546001600160a01b031633146109b7576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0381166109de5760405163e6c4247b60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610a2a576040516282b42960e81b815260040160405180910390fd5b610a3760a0840184612d74565b1590508015610a525750610a4e60a0830183612d74565b1590505b15610a705760405163162908e360e11b815260040160405180910390fd5b8015610b885760005a905047610ab8610a8c6020870187612a72565b6020870135610aa16060890160408a01612a72565b6060890135610ab360808b018b612d74565b611cac565b476000610ac58383612ddb565b90507fdd36740e2a012d93061a0d99eaa9107860955de4e90027d3cf465a055026c407610af56020890189612a72565b610b0560608a0160408b01612a72565b604080516001600160a01b039384168152929091166020838101919091528a0135908201526060810183905260800160405180910390a16000610b4782611dc1565b9050610b538282611e5a565b9150610b7e610b6560a08a018a612d74565b610b7260208c018c612a72565b858c602001358a611e6f565b5050505050505050565b610b956080830183612d74565b610ba191506001612dee565b610bab8380612d74565b905014610bcb5760405163162908e360e11b815260040160405180910390fd5b610c14610bd88380612d74565b6000818110610be957610be9612e01565b9050602002016020810190610bfe9190612a72565b6006546001600160a01b03166020850135612194565b6000610c208380612d74565b6000818110610c3157610c31612e01565b9050602002016020810190610c469190612a72565b604051602001610c6e919060609190911b6bffffffffffffffffffffffff1916815260140190565b604051602081830303815290604052905060005b610c8f6080850185612d74565b9050811015610d305781610ca66080860186612d74565b83818110610cb657610cb6612e01565b9050602002016020810190610ccb9190612e17565b610cd58680612d74565b610ce0856001612dee565b818110610cef57610cef612e01565b9050602002016020810190610d049190612a72565b604051602001610d1693929190612e60565b60408051601f198184030181529190529150600101610c82565b50610d9181610d3f8580612d74565b6000818110610d5057610d50612e01565b9050602002016020810190610d659190612a72565b6020860135610d7a6060880160408901612a72565b6060880135610d8c60a08a018a612d74565b612265565b50610dd8610d9f8480612d74565b6000818110610db057610db0612e01565b9050602002016020810190610dc59190612a72565b6006546001600160a01b03166000612194565b505b505050565b60608060606000610df0600c61246a565b905060008167ffffffffffffffff811115610e0d57610e0d612eac565b604051908082528060200260200182016040528015610e36578160200160208202803683370190505b50905060008267ffffffffffffffff811115610e5457610e54612eac565b604051908082528060200260200182016040528015610e7d578160200160208202803683370190505b50905060008367ffffffffffffffff811115610e9b57610e9b612eac565b604051908082528060200260200182016040528015610ec4578160200160208202803683370190505b50905060005b84811015610f94576000610edf600c83612474565b905080858381518110610ef457610ef4612e01565b6001600160a01b0392831660209182029290920181019190915260008c815260098252604080822093851682529290915220548451859084908110610f3b57610f3b612e01565b60209081029190910181019190915260008b81526009825260408082206001600160a01b038516835290925220600101548351849084908110610f8057610f80612e01565b602090810291909101015250600101610eca565b50919790965090945092505050565b6002546001600160a01b03163314610fcd576040516282b42960e81b815260040160405180910390fd5b82156110c6576000868152600b60209081526040808320600983528184206001600160a01b038a168552909252909120831561103b57858160010160008282546110179190612dee565b9091555050815486908390600090611030908490612dee565b909155506110bf9050565b815486111561108c5760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742062616c616e636520746f2064656475637400006044820152606401610627565b858160010160008282546110a09190612ddb565b90915550508154869083906000906110b9908490612ddb565b90915550505b505061117a565b60008681526009602090815260408083206001600160a01b03891684529091529020821561110d57848160000160008282546111029190612dee565b909155506111789050565b805485111561115e5760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742062616c616e636520746f2064656475637400006044820152606401610627565b848160000160008282546111729190612ddb565b90915550505b505b80156111b6576001600160a01b038516600090815260086020526040812060010180548692906111ab908490612ddb565b909155506111e79050565b6001600160a01b038516600090815260086020526040812060010180548692906111e1908490612dee565b90915550505b505050505050565b6002546001600160a01b03163314611219576040516282b42960e81b815260040160405180910390fd5b8260000361123a5760405163162908e360e11b815260040160405180910390fd5b801561142e5760008481526009602090815260408083206001600160a01b038916845290915290206001810154848110156112885760405163162908e360e11b815260040160405180910390fd5b83478611156112d95760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610627565b6000816001600160a01b03168760405160006040518083038185875af1925050503d8060008114611326576040519150601f19603f3d011682016040523d82523d6000602084013e61132b565b606091505b50509050806113735760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610627565b868460010160008282546113879190612ddb565b90915550506000888152600b6020526040812080548992906113aa908490612ddb565b90915550506000888152600b6020526040812060010180548992906113d0908490612dee565b9091555050604080518981526001600160a01b038b811660208301528183018a90528816606082015290517fff012f9085a7b0edd80de05a06fcad6708aa974050695758d1d1625ab2dad4da9181900360800190a15050505061168e565b60008481526009602090815260408083206001600160a01b0389168452909152902080548411156114725760405163162908e360e11b815260040160405180910390fd5b805486906114809086611e5a565b82556001600160a01b03871660009081526008602090815260408083208984526002019091529020546114b39086611e5a565b6001600160a01b03881660008181526008602081815260408084208c855260028101835290842095909555929091529052600101546114f29086611e5a565b6001600160a01b038881166000908152600860205260409081902060010192909255905163a9059cbb60e01b81528582166004820152602481018790529082169063a9059cbb906044016020604051808303816000875af115801561155b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157f9190612ec2565b6115bd5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610627565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa158015611601573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116259190612edf565b6001600160a01b038881166000818152600a6020908152604091829020949094558051918252928101899052918201879052851660608201527fa688c7819bbe357acad0dd86e99d0b1d12a87ad321a4da83a6cdf9e82ad32f0c9060800160405180910390a150505b5050505050565b6002546001600160a01b031633146116bf576040516282b42960e81b815260040160405180910390fd5b6000828152600b60205260409020548047116116ee5760405163162908e360e11b815260040160405180910390fd5b60405182906000906001600160a01b0383169084908381818185875af1925050503d806000811461173b576040519150601f19603f3d011682016040523d82523d6000602084013e611740565b606091505b50509050806117885760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610627565b6000858152600b6020526040812060010180548592906117a9908490612dee565b90915550506000858152600b602090815260408083208390558051888152918201929092529081018490526001600160a01b03851660608201527fff012f9085a7b0edd80de05a06fcad6708aa974050695758d1d1625ab2dad4da9060800160405180910390a15050505050565b6003546001600160a01b03163314611841576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0381166118685760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146118b4576040516282b42960e81b815260040160405180910390fd5b600155565b6002546001600160a01b031633146118e3576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116600090815260086020526040902060018101548015801561192457506001600160a01b0383166000908152600a6020526040902054155b1561192e57505050565b506001600160a01b0382166000908152600a602052604081208190556001909101555b50565b6060806000611963600c61246a565b905060008167ffffffffffffffff81111561198057611980612eac565b6040519080825280602002602001820160405280156119a9578160200160208202803683370190505b50905060008267ffffffffffffffff8111156119c7576119c7612eac565b6040519080825280602002602001820160405280156119f0578160200160208202803683370190505b50905060005b83811015611a8f576000611a0b600c83612474565b905080848381518110611a2057611a20612e01565b60200260200101906001600160a01b031690816001600160a01b03168152505060086000826001600160a01b03166001600160a01b0316815260200190815260200160002060010154838381518110611a7b57611a7b612e01565b6020908102919091010152506001016119f6565b509094909350915050565b6002546001600160a01b03163314611ac4576040516282b42960e81b815260040160405180910390fd5b80600003611ae55760405163162908e360e11b815260040160405180910390fd5b611af0600c84612480565b611afd57611afd836124a2565b6040516370a0823160e01b815230600482015283906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6a9190612edf565b6001600160a01b0386166000908152600a602052604081205491925090611b9190856124ad565b905080821015611bb45760405163162908e360e11b815260040160405180910390fd5b6001600160a01b038616600081815260086020526040902080546001600160a01b03191690911781556001810154611bec90866124ad565b60018201556000868152600282016020526040902054611c0c90866124ad565b6000878152600283016020908152604080832093909355600981528282206001600160a01b038b1683529052208054611c4590876124ad565b81556001600160a01b0388166000818152600a60209081526040918290208790558151928352820189905281018790527f0e6ee3f1872e2e9e3ccf14740ff0e359c81ec96d2eb14e989d9d592828a466039060600160405180910390a15050505050505050565b6002546001600160a01b03163314611cd6576040516282b42960e81b815260040160405180910390fd5b841580611cf45750836001600160a01b0316866001600160a01b0316145b15611d125760405163162908e360e11b815260040160405180910390fd5b600554611d2a9087906001600160a01b031687612194565b6000611d3842610384612dee565b60055460405163791ac94760e01b81529192506001600160a01b03169063791ac94790611d7390899088908890889030908990600401612ef8565b600060405180830381600087803b158015611d8d57600080fd5b505af1925050508015611d9e575060015b50600554611db89088906001600160a01b03166000612194565b50505050505050565b60008061271060015484611dd59190612f6b565b611ddf9190612f82565b905082811115611e3c5760405162461bcd60e51b815260206004820152602260248201527f466565206578636565647320746865207472616e73616374696f6e20616d6f756044820152611b9d60f21b6064820152608401610627565b8060046000828254611e4e9190612dee565b90915550909392505050565b6000611e668284612ddb565b90505b92915050565b3a5a611e7b9083612ddb565b611e859190612f6b565b831115611ee0573a5a611e989083612ddb565b611ea29190612f6b565b60046000828254611eb39190612dee565b909155503a90505a611ec59083612ddb565b611ecf9190612f6b565b611ed99084612ddb565b9250611ef9565b60405163162908e360e11b815260040160405180910390fd5b6000611f068787876124b9565b905080600003611f1657506111e7565b60008060005b88811015612110576001600160a01b0388166000908152600860205260408120600201818c8c85818110611f5257611f52612e01565b90506020020135815260200190815260200160002054905080600003611f785750612108565b600085611f85838b612f6b565b611f8f9190612f82565b905080600960008e8e87818110611fa857611fa8612e01565b90506020020135815260200190815260200160002060008c6001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254611ff29190612dee565b9091555061200290508186612dee565b945080600b60008e8e8781811061201b5761201b612e01565b90506020020135815260200190815260200160002060000160008282546120429190612dee565b909155506000905086612055848b612f6b565b61205f9190612f82565b905080600960008f8f8881811061207857612078612e01565b90506020020135815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060000160008282546120c29190612ddb565b90915550506001600160a01b038b16600090815260086020526040812060010180548392906120f2908490612ddb565b9091555061210290508186612dee565b94505050505b600101611f1c565b50848110156121895760006121258287612ddb565b6001600160a01b038916600090815260086020526040812060010180549293508392909190612155908490612ddb565b90915550506001600160a01b0388166000908152600a602052604081208054839290612182908490612ddb565b9091555050505b505050505050505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152849160009183169063dd62ed3e90604401602060405180830381865afa1580156121e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122099190612edf565b90508281101561223b57600061221f8285612ddb565b90506122356001600160a01b0384168683612530565b5061168e565b8281111561168e57600061224f8483612ddb565b90506111e76001600160a01b0384168683612610565b6002546000906001600160a01b03163314612292576040516282b42960e81b815260040160405180910390fd5b60005a9050866000036122b85760405163162908e360e11b815260040160405180910390fd5b604080516080810182528a815230602082015280820189905260608101879052600654915163b858183f60e01b815290916001600160a01b03169063b858183f90612307908490600401612fd0565b6020604051808303816000875af1158015612326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234a9190612edf565b6007549093506001600160a01b03908116908816036123c257604051632e1a7d4d60e01b8152600481018490526001600160a01b03881690632e1a7d4d90602401600060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b50505050600096505b826000036123e35760405163081ceff360e41b815260040160405180910390fd5b604080516001600160a01b03808c16825289166020820152908101899052606081018490527fdd36740e2a012d93061a0d99eaa9107860955de4e90027d3cf465a055026c4079060800160405180910390a1600061244084611dc1565b905061244c8185612ddb565b935061245c86868c878d88611e6f565b505050979650505050505050565b6000611e69825490565b6000611e668383612719565b6001600160a01b03811660009081526001830160205260408120541515611e66565b6107e1600c82612743565b6000611e668284612dee565b6000805b83811015612528576001600160a01b038316600090815260086020526040812061251e916002909101908787858181106124f9576124f9612e01565b90506020020135815260200190815260200160002054836124ad90919063ffffffff16565b91506001016124bd565b509392505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015612580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a49190612edf565b9050610dd88463095ea7b360e01b856125bd8686612dee565b6040516001600160a01b03909216602483015260448201526064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612758565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015612660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126849190612edf565b9050818110156126e85760405162461bcd60e51b815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e63652062604482015268656c6f77207a65726f60b81b6064820152608401610627565b6040516001600160a01b03841660248201528282036044820152610dd890859063095ea7b360e01b906064016125d9565b600082600001828154811061273057612730612e01565b9060005260206000200154905092915050565b6000611e66836001600160a01b03841661282d565b60006127ad826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661287c9092919063ffffffff16565b90508051600014806127ce5750808060200190518101906127ce9190612ec2565b610dda5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610627565b600081815260018301602052604081205461287457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611e69565b506000611e69565b606061288b8484600085612893565b949350505050565b6060824710156128f45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610627565b600080866001600160a01b03168587604051612910919061301e565b60006040518083038185875af1925050503d806000811461294d576040519150601f19603f3d011682016040523d82523d6000602084013e612952565b606091505b50915091506129638783838761296e565b979650505050505050565b606083156129dd5782516000036129d6576001600160a01b0385163b6129d65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610627565b508161288b565b61288b83838151156129f25781518083602001fd5b8060405162461bcd60e51b8152600401610627919061303a565b600060a08284031215612a1e57600080fd5b50919050565b6001600160a01b038116811461195157600080fd5b60008060408385031215612a4c57600080fd5b8235612a5781612a24565b91506020830135612a6781612a24565b809150509250929050565b600060208284031215612a8457600080fd5b8135612a8f81612a24565b9392505050565b600060c08284031215612a1e57600080fd5b801515811461195157600080fd5b600080600060608486031215612acb57600080fd5b833567ffffffffffffffff80821115612ae357600080fd5b612aef87838801612a96565b94506020860135915080821115612b0557600080fd5b50612b1286828701612a96565b9250506040840135612b2381612aa8565b809150509250925092565b600060208284031215612b4057600080fd5b5035919050565b60008151808452602080850194506020840160005b83811015612b815781516001600160a01b031687529582019590820190600101612b5c565b509495945050505050565b60008151808452602080850194506020840160005b83811015612b8157815187529582019590820190600101612ba1565b606081526000612bd06060830186612b47565b8281036020840152612be28186612b8c565b90508281036040840152612bf68185612b8c565b9695505050505050565b60008060008060008060c08789031215612c1957600080fd5b863595506020870135612c2b81612a24565b9450604087013593506060870135612c4281612aa8565b92506080870135612c5281612aa8565b915060a0870135612c6281612aa8565b809150509295509295509295565b600080600080600060a08688031215612c8857600080fd5b8535612c9381612a24565b945060208601359350604086013592506060860135612cb181612a24565b91506080860135612cc181612aa8565b809150509295509295909350565b60008060408385031215612ce257600080fd5b823591506020830135612a6781612a24565b604081526000612d076040830185612b47565b8281036020840152612d198185612b8c565b95945050505050565b600080600060608486031215612d3757600080fd5b8335612d4281612a24565b95602085013595506040909401359392505050565b600060208284031215612d6957600080fd5b8151612a8f81612a24565b6000808335601e19843603018112612d8b57600080fd5b83018035915067ffffffffffffffff821115612da657600080fd5b6020019150600581901b3603821315612dbe57600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611e6957611e69612dc5565b80820180821115611e6957611e69612dc5565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612e2957600080fd5b813562ffffff81168114612a8f57600080fd5b60005b83811015612e57578181015183820152602001612e3f565b50506000910152565b60008451612e72818460208901612e3c565b60e89490941b6001600160e81b0319169190930190815260609190911b6bffffffffffffffffffffffff1916600382015260170192915050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215612ed457600080fd5b8151612a8f81612aa8565b600060208284031215612ef157600080fd5b5051919050565b868152602080820187905260a0604083018190528201859052600090869060c08401835b88811015612f4a578335612f2f81612a24565b6001600160a01b031682529282019290820190600101612f1c565b506001600160a01b0396909616606085015250505060800152949350505050565b8082028115828204841417611e6957611e69612dc5565b600082612f9f57634e487b7160e01b600052601260045260246000fd5b500490565b60008151808452612fbc816020860160208601612e3c565b601f01601f19169290920160200192915050565b602081526000825160806020840152612fec60a0840182612fa4565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b60008251613030818460208701612e3c565b9190910192915050565b602081526000611e666020830184612fa456fea26469706673582212208d7183ed9dea5bc8e5a83da88b2474c50dc68d0974771ba12ea637cfc94c9cc664736f6c63430008180033