60806040523480156200001157600080fd5b5060408051808201909152601a81527f68747470733a2f2f6d7576657273652e696e666f2f67616d652f0000000000006020820152620000518162000076565b506200005d336200008f565b60026007556008805560646004556000600655620001c4565b80516200008b906002906020840190620000e1565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000ef9062000187565b90600052602060002090601f0160209004810192826200011357600085556200015e565b82601f106200012e57805160ff19168380011785556200015e565b828001600101855582156200015e579182015b828111156200015e57825182559160200191906001019062000141565b506200016c92915062000170565b5090565b5b808211156200016c576000815560010162000171565b600181811c908216806200019c57607f821691505b60208210811415620001be57634e487b7160e01b600052602260045260246000fd5b50919050565b61398680620001d46000396000f3fe6080604052600436106101f85760003560e01c806362624ae91161010d578063c260804c116100a0578063d0fe19bf1161006f578063d0fe19bf14610669578063e985e9c51461069f578063f242432a146106e8578063f2fde38b14610708578063ffeb1c631461072857600080fd5b8063c260804c14610600578063c3de3b1214610620578063cb4c32d814610633578063cc1284231461064957600080fd5b80638da5cb5b116100dc5780638da5cb5b1461056c5780639c8a9d301461059e578063a22cb465146105cb578063a646f9ad146105eb57600080fd5b806362624ae91461044e578063715018a614610486578063837c18eb1461049b5780638a580378146104c957600080fd5b8063163dd8bb116101905780632eb2c2d61161015f5780632eb2c2d6146103ab5780633b66b00a146103cb5780634209a2e1146103e15780634e1273f4146104015780635198cf861461042e57600080fd5b8063163dd8bb14610324578063187958331461034b5780632825df7b1461036b5780632e1a7d4d1461038b57600080fd5b80630dccc9ad116101cc5780630dccc9ad146102a25780630e89341c146102c4578063131e5046146102e45780631628e0f51461030457600080fd5b8062fdd58e146101fd57806301ffc9a71461023057806302e5329e1461026057806302fe530514610282575b600080fd5b34801561020957600080fd5b5061021d610218366004612f7d565b610757565b6040519081526020015b60405180910390f35b34801561023c57600080fd5b5061025061024b366004613077565b6107ed565b6040519015158152602001610227565b34801561026c57600080fd5b5061028061027b3660046130e5565b61083f565b005b34801561028e57600080fd5b5061028061029d3660046130b1565b61084c565b3480156102ae57600080fd5b506102b7610860565b604051610227919061353d565b3480156102d057600080fd5b506102b76102df3660046130e5565b6108ee565b3480156102f057600080fd5b506102806102ff3660046130e5565b610922565b34801561031057600080fd5b5061028061031f3660046130e5565b6109a8565b34801561033057600080fd5b50610339610b4d565b6040516102279695949392919061348c565b34801561035757600080fd5b506102806103663660046131c1565b610f45565b34801561037757600080fd5b506102806103863660046130fe565b611268565b34801561039757600080fd5b506102806103a63660046130e5565b611365565b3480156103b757600080fd5b506102806103c6366004612e34565b611408565b3480156103d757600080fd5b5061021d60085481565b3480156103ed57600080fd5b506102806103fc3660046130e5565b611454565b34801561040d57600080fd5b5061042161041c366004612fa7565b6114da565b6040516102279190613454565b34801561043a57600080fd5b5061028061044936600461316a565b611603565b34801561045a57600080fd5b5061021d6104693660046130b1565b8051602081830181018051600b8252928201919093012091525481565b34801561049257600080fd5b50610280611777565b3480156104a757600080fd5b506104bb6104b6366004612ddf565b61178b565b604051610227929190613467565b3480156104d557600080fd5b5061052c6104e43660046130e5565b600a60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909160ff81169061010090046001600160a01b031687565b6040805197885260208801969096529486019390935260608501919091526080840152151560a08301526001600160a01b031660c082015260e001610227565b34801561057857600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610227565b3480156105aa57600080fd5b5061021d6105b9366004612ddf565b600c6020526000908152604090205481565b3480156105d757600080fd5b506102806105e6366004612f41565b61191d565b3480156105f757600080fd5b5061028061192c565b34801561060c57600080fd5b5061028061061b36600461318c565b611a59565b61028061062e36600461316a565b611ade565b34801561063f57600080fd5b5061021d60075481565b34801561065557600080fd5b5061028061066436600461316a565b611fb3565b34801561067557600080fd5b506105866106843660046130e5565b6000908152600960205260409020546001600160a01b031690565b3480156106ab57600080fd5b506102506106ba366004612e01565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b3480156106f457600080fd5b50610280610703366004612edd565b612108565b34801561071457600080fd5b50610280610723366004612ddf565b61214d565b34801561073457600080fd5b506107486107433660046130e5565b6121c3565b60405161022793929190613414565b60006001600160a01b0383166107c75760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061081e57506001600160e01b031982166303a24d0760e21b145b8061083957506301ffc9a760e01b6001600160e01b03198316145b92915050565b610847612300565b600455565b610854612300565b61085d8161235a565b50565b6002805461086d906137a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610899906137a7565b80156108e65780601f106108bb576101008083540402835291602001916108e6565b820191906000526020600020905b8154815290600101906020018083116108c957829003601f168201915b505050505081565b606060026108fb8361236d565b60405160200161090c9291906132ca565b6040516020818303038152906040529050919050565b61092a612300565b6064811061096c5760405162461bcd60e51b815260206004820152600f60248201526e05f6e756d206d757374203c2031303608c1b60448201526064016107be565b60646008548261097c9190613715565b106109a35760405162461bcd60e51b815260206004820152600060248201526044016107be565b600755565b6000818152600a602052604090206005015461010090046001600160a01b031633146109e65760405162461bcd60e51b81526004016107be906136ce565b6000818152600a602052604090206005015460ff161515600114610a1c5760405162461bcd60e51b81526004016107be906136ad565b6000818152600a602052604090206002810154600190910154600b903390610a439061236d565b604051602001610a54929190613276565b60408051601f1981840301815290829052610a6e916132ae565b908152602001604051809103902054610a879190613760565b6000828152600a6020526040902060010154600b903390610aa79061236d565b604051602001610ab8929190613276565b60408051601f1981840301815290829052610ad2916132ae565b9081526040805160209281900383018120939093556000848152600a90925281208181556001810182905560028101829055600381018290556004810182905560050180546001600160a81b0319169055339183917f1218f3cb1d0d9f0fa16edd3d92a08e141c46d98b93fced41a8a97479a5a6663c91a350565b60608060608060608060008060005b6006548111610b9f576000818152600a602052604090206005015460ff1615610b8d5782610b898161380e565b9350505b80610b978161380e565b915050610b5c565b508115610ef8576000826001600160401b03811115610bc057610bc061387f565b604051908082528060200260200182016040528015610be9578160200160208202803683370190505b5090506000836001600160401b03811115610c0657610c0661387f565b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000846001600160401b03811115610c4c57610c4c61387f565b604051908082528060200260200182016040528015610c75578160200160208202803683370190505b5090506000856001600160401b03811115610c9257610c9261387f565b604051908082528060200260200182016040528015610cbb578160200160208202803683370190505b5090506000866001600160401b03811115610cd857610cd861387f565b604051908082528060200260200182016040528015610d01578160200160208202803683370190505b5090506000876001600160401b03811115610d1e57610d1e61387f565b604051908082528060200260200182016040528015610d47578160200160208202803683370190505b50905060005b600554811015610ee0576000818152600a602052604090206005015460ff1615610ec15780878981518110610d8457610d84613869565b602002602001018181525050600a600082815260200190815260200160002060010154868981518110610db957610db9613869565b602002602001018181525050600a600082815260200190815260200160002060020154858981518110610dee57610dee613869565b602002602001018181525050600a600082815260200190815260200160002060030154848981518110610e2357610e23613869565b602002602001018181525050600a600082815260200190815260200160002060040154838981518110610e5857610e58613869565b602002602001018181525050600a600082815260200190815260200160002060050160019054906101000a90046001600160a01b0316828981518110610ea057610ea0613869565b60200260200101906001600160a01b031690816001600160a01b0316815250505b88881415610ece57610ee0565b80610ed88161380e565b915050610d4d565b50949c50929a50909850965094509250610f3d915050565b505060408051600080825260208201818152828401828152606084018381526080850184815260a0860194855260c08601909652939a50909850965090945090925090505b909192939495565b60008211610f855760405162461bcd60e51b815260206004820152600d60248201526c0206e756d206d757374203e203609c1b60448201526064016107be565b600b33610f918661236d565b604051602001610fa2929190613276565b60408051601f1981840301815290829052610fbc916132ae565b90815260200160405180910390205482610fd69190613715565b610fe03386610757565b10156110275760405162461bcd60e51b81526020600482015260166024820152750e8ded6cadcbed2c840dceada40d2e640cadccedeead60531b60448201526064016107be565b6103e883116110685760405162461bcd60e51b815260206004820152600d60248201526c707269636520746f6f206c6f7760981b60448201526064016107be565b80156110bb574281116110b65760405162461bcd60e51b8152602060048201526016602482015275656e645f74696d65206973206d757374203e206e6f7760501b60448201526064016107be565b6110bf565b5060005b6040805160e08101825260065480825260208083018881528385018781526060850189815260808601888152600160a088018181523360c08a018181526000998a52600a90985299909720975188559351938701939093559051600286015551600385015551600484015590516005909201805491516001600160a81b0319909216921515610100600160a81b031916929092176101006001600160a01b03909216919091021790558290600b906111768761236d565b604051602001611187929190613276565b60408051601f19818403018152908290526111a1916132ae565b9081526020016040518091039020546111ba9190613715565b600b336111c68761236d565b6040516020016111d7929190613276565b60408051601f19818403018152908290526111f1916132ae565b90815260408051602092819003830181209390935560065485845291830186905233908301526060820183905285917ff7b1e6c167a9bc203409829ddbbc2f2b9919d565436a63e79c08e817a9816f209060800160405180910390a36006805490600061125d8361380e565b919050555050505050565b6004548311156112b05760405162461bcd60e51b8152602060048201526013602482015272206e756d206d757374203c206d61785f6e756d60681b60448201526064016107be565b60408051606081018252338152602080820185815282840185905260055460009081526009835293909320825181546001600160a01b0319166001600160a01b039091161781559251805192939261130e9260018501920190612c40565b506040820151805161132a916002840191602090910190612c40565b5090505061134b336005548560405180602001604052806000815250612472565b6005805490600061135b8361380e565b9190505550505050565b61136d612300565b478111156113b65760405162461bcd60e51b81526020600482015260166024820152755f62616c616e6365206d757374203c206f776e65727360501b60448201526064016107be565b60006113ca6003546001600160a01b031690565b6040519091506001600160a01b0382169083156108fc029084906000818181858888f19350505050158015611403573d6000803e3d6000fd5b505050565b6001600160a01b038516331480611424575061142485336106ba565b6114405760405162461bcd60e51b81526004016107be90613550565b61144d8585858585612586565b5050505050565b61145c612300565b6064811061149e5760405162461bcd60e51b815260206004820152600f60248201526e05f6e756d206d757374203c2031303608c1b60448201526064016107be565b6064600754826114ae9190613715565b106114d55760405162461bcd60e51b815260206004820152600060248201526044016107be565b600855565b6060815183511461153f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107be565b600083516001600160401b0381111561155a5761155a61387f565b604051908082528060200260200182016040528015611583578160200160208202803683370190505b50905060005b84518110156115fb576115ce8582815181106115a7576115a7613869565b60200260200101518583815181106115c1576115c1613869565b6020026020010151610757565b8282815181106115e0576115e0613869565b60209081029190910101526115f48161380e565b9050611589565b509392505050565b6000828152600a602052604090206005015461010090046001600160a01b031633146116415760405162461bcd60e51b81526004016107be906136ce565b6000828152600a602052604090206005015460ff1615156001146116775760405162461bcd60e51b81526004016107be906136ad565b6000828152600a60205260409020600281015460019091015461169b903390610757565b10156116e25760405162461bcd60e51b81526020600482015260166024820152750e8ded6cadcbed2c840dceada40d2e640cadccedeead60531b60448201526064016107be565b6103e881116117235760405162461bcd60e51b815260206004820152600d60248201526c707269636520746f6f206c6f7760981b60448201526064016107be565b6000828152600a6020526040908190206003018290555182907f56d448a31039ed8b2c91a20a29c04350e1dd7918b0e0f1da02fb9c8c20f3123d9061176b9084815260200190565b60405180910390a25050565b61177f612300565b6117896000612763565b565b6060806000806000805b6005548110156117d15760006117ab8883610757565b11156117bf57836117bb8161380e565b9450505b806117c98161380e565b915050611795565b5082156118fb576000836001600160401b038111156117f2576117f261387f565b60405190808252806020026020018201604052801561181b578160200160208202803683370190505b5090506000846001600160401b038111156118385761183861387f565b604051908082528060200260200182016040528015611861578160200160208202803683370190505b50905060005b6005548110156118ed5761187b8982610757565b935083156118ce578083868151811061189657611896613869565b602002602001018181525050838286815181106118b5576118b5613869565b6020908102919091010152846118ca8161380e565b9550505b858514156118db576118ed565b806118e58161380e565b915050611867565b509097909650945050505050565b5050604080516000808252602082019081528183019092529590945092505050565b6119283383836127b5565b5050565b336000908152600c60205260409020546119805760405162461bcd60e51b81526020600482015260156024820152740796f75722062616c616e6365206d757374203e203605c1b60448201526064016107be565b336000908152600c60205260409020544710156119df5760405162461bcd60e51b815260206004820152601860248201527f42616c616e6365206d75737420626520706f736974697665000000000000000060448201526064016107be565b336000818152600c60205260408082205490519192918381818185875af1925050503d8060008114611a2d576040519150601f19603f3d011682016040523d82523d6000602084013e611a32565b606091505b5090915050600181151514611a4657600080fd5b50336000908152600c6020526040812055565b60008211611a995760405162461bcd60e51b815260206004820152600d60248201526c0206e756d206d757374203e203609c1b60448201526064016107be565b81611aa43385610757565b1015611ac25760405162461bcd60e51b81526004016107be9061362c565b6114033382858560405180602001604052806000815250612896565b6000828152600a602052604090206005015460ff16611b2b5760405162461bcd60e51b81526020600482015260096024820152681a5cc81cd95b1b195960ba1b60448201526064016107be565b6000828152600a6020526040902060020154811115611b5c5760405162461bcd60e51b81526004016107be9061362c565b6000828152600a6020526040902060058101546001909101548291611b90916101009091046001600160a01b031690610757565b1015611bae5760405162461bcd60e51b81526004016107be9061362c565b6000828152600a6020526040812060030154611bcb908390613741565b905080341015611c105760405162461bcd60e51b815260206004820152601060248201526f7072696365206e6f7420656e67686f7560801b60448201526064016107be565b6000838152600a602052604090206004015415611c79576000838152600a6020526040902060040154421115611c795760405162461bcd60e51b815260206004820152600e60248201526d037b93232b91034b99037bb32b9160951b60448201526064016107be565b6000838152600a6020526040902060020154611c96908390613760565b6000848152600a6020526040902060020181905560011115611ccc576000838152600a60205260409020600501805460ff191690555b6000838152600a6020908152604080832060058101546001909101548251938401909252928252611d109261010090046001600160a01b0316913391908690612896565b6000838152600a6020526040902060058101546001909101548391600b916101009091046001600160a01b031690611d479061236d565b604051602001611d58929190613276565b60408051601f1981840301815290829052611d72916132ae565b908152602001604051809103902054611d8b9190613760565b6000848152600a602052604090206005810154600190910154600b9161010090046001600160a01b031690611dbf9061236d565b604051602001611dd0929190613276565b60408051601f1981840301815290829052611dea916132ae565b90815260405190819003602001902055600854600754600091606491611e109083613760565b611e1a9190613760565b611e249084613741565b611e2e919061372d565b90506000606460085484611e429190613741565b611e4c919061372d565b6000868152600a602052604080822060050154905192935061010090046001600160a01b031691829085908381818185875af1925050503d8060008114611eaf576040519150601f19603f3d011682016040523d82523d6000602084013e611eb4565b606091505b5050905080611eee5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b60448201526064016107be565b6000878152600a6020908152604080832060010154835260098252808320546001600160a01b03168352600c909152902054611f2b908490613715565b6000888152600a602081815260408084206001018054855260098352818520546001600160a01b03168552600c835281852095909555928b90529081529154815188815292830189905233838301529051909189917f03ead356efd518f25112a94d2a0d02c45de70c0b95afdaa699c4d8af718949e49181900360600190a350505050505050565b6000828152600a602052604090206005015461010090046001600160a01b03163314611ff15760405162461bcd60e51b81526004016107be906136ce565b6000828152600a602052604090206005015460ff1615156001146120275760405162461bcd60e51b81526004016107be906136ad565b6000828152600a60205260409020600281015460019091015461204b903390610757565b10156120695760405162461bcd60e51b81526004016107be9061362c565b80156120bc574281116120b75760405162461bcd60e51b8152602060048201526016602482015275656e645f74696d65206973206d757374203e206e6f7760501b60448201526064016107be565b6120c0565b5060005b6000828152600a6020526040908190206004018290555182907f3b2834667af080bc1c4dd58d902bb87b7f5b272f4a4c020a54308fed50a3dadb9061176b9084815260200190565b6001600160a01b038516331480612124575061212485336106ba565b6121405760405162461bcd60e51b81526004016107be90613550565b61144d8585858585612896565b612155612300565b6001600160a01b0381166121ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107be565b61085d81612763565b600960205260009081526040902080546001820180546001600160a01b0390921692916121ef906137a7565b80601f016020809104026020016040519081016040528092919081815260200182805461221b906137a7565b80156122685780601f1061223d57610100808354040283529160200191612268565b820191906000526020600020905b81548152906001019060200180831161224b57829003601f168201915b50505050509080600201805461227d906137a7565b80601f01602080910402602001604051908101604052809291908181526020018280546122a9906137a7565b80156122f65780601f106122cb576101008083540402835291602001916122f6565b820191906000526020600020905b8154815290600101906020018083116122d957829003601f168201915b5050505050905083565b6003546001600160a01b031633146117895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107be565b8051611928906002906020840190612c40565b6060816123915750506040805180820190915260018152600360fc1b602082015290565b8160005b81156123bb57806123a58161380e565b91506123b49050600a8361372d565b9150612395565b6000816001600160401b038111156123d5576123d561387f565b6040519080825280601f01601f1916602001820160405280156123ff576020820181803683370190505b5090505b841561246a57612414600183613760565b9150612421600a86613829565b61242c906030613715565b60f81b81838151811061244157612441613869565b60200101906001600160f81b031916908160001a905350612463600a8661372d565b9450612403565b949350505050565b6001600160a01b0384166124d25760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107be565b3360006124de856129c0565b905060006124eb856129c0565b90506000868152602081815260408083206001600160a01b038b1684529091528120805487929061251d908490613715565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461257d83600089898989612a0b565b50505050505050565b81518351146125e85760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107be565b6001600160a01b03841661260e5760405162461bcd60e51b81526004016107be906135e7565b3360005b84518110156126f557600085828151811061262f5761262f613869565b60200260200101519050600085838151811061264d5761264d613869565b602090810291909101810151600084815280835260408082206001600160a01b038e16835290935291909120549091508181101561269d5760405162461bcd60e51b81526004016107be90613663565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906126da908490613715565b92505081905550505050806126ee9061380e565b9050612612565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612745929190613467565b60405180910390a461275b818787878787612b76565b505050505050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031614156128295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107be565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166128bc5760405162461bcd60e51b81526004016107be906135e7565b3360006128c8856129c0565b905060006128d5856129c0565b90506000868152602081815260408083206001600160a01b038c168452909152902054858110156129185760405162461bcd60e51b81526004016107be90613663565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612955908490613715565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46129b5848a8a8a8a8a612a0b565b505050505050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106129fa576129fa613869565b602090810291909101015292915050565b6001600160a01b0384163b1561275b5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612a4f90899089908890889088906004016133cf565b602060405180830381600087803b158015612a6957600080fd5b505af1925050508015612a99575060408051601f3d908101601f19168201909252612a9691810190613094565b60015b612b4657612aa5613895565b806308c379a01415612adf5750612aba6138b1565b80612ac55750612ae1565b8060405162461bcd60e51b81526004016107be919061353d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107be565b6001600160e01b0319811663f23a6e6160e01b1461257d5760405162461bcd60e51b81526004016107be9061359f565b6001600160a01b0384163b1561275b5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612bba9089908990889088908890600401613371565b602060405180830381600087803b158015612bd457600080fd5b505af1925050508015612c04575060408051601f3d908101601f19168201909252612c0191810190613094565b60015b612c1057612aa5613895565b6001600160e01b0319811663bc197c8160e01b1461257d5760405162461bcd60e51b81526004016107be9061359f565b828054612c4c906137a7565b90600052602060002090601f016020900481019282612c6e5760008555612cb4565b82601f10612c8757805160ff1916838001178555612cb4565b82800160010185558215612cb4579182015b82811115612cb4578251825591602001919060010190612c99565b50612cc0929150612cc4565b5090565b5b80821115612cc05760008155600101612cc5565b80356001600160a01b0381168114612cf057600080fd5b919050565b600082601f830112612d0657600080fd5b81356020612d13826136f2565b604051612d2082826137e2565b8381528281019150858301600585901b87018401881015612d4057600080fd5b60005b85811015612d5f57813584529284019290840190600101612d43565b5090979650505050505050565b600082601f830112612d7d57600080fd5b81356001600160401b03811115612d9657612d9661387f565b604051612dad601f8301601f1916602001826137e2565b818152846020838601011115612dc257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215612df157600080fd5b612dfa82612cd9565b9392505050565b60008060408385031215612e1457600080fd5b612e1d83612cd9565b9150612e2b60208401612cd9565b90509250929050565b600080600080600060a08688031215612e4c57600080fd5b612e5586612cd9565b9450612e6360208701612cd9565b935060408601356001600160401b0380821115612e7f57600080fd5b612e8b89838a01612cf5565b94506060880135915080821115612ea157600080fd5b612ead89838a01612cf5565b93506080880135915080821115612ec357600080fd5b50612ed088828901612d6c565b9150509295509295909350565b600080600080600060a08688031215612ef557600080fd5b612efe86612cd9565b9450612f0c60208701612cd9565b9350604086013592506060860135915060808601356001600160401b03811115612f3557600080fd5b612ed088828901612d6c565b60008060408385031215612f5457600080fd5b612f5d83612cd9565b915060208301358015158114612f7257600080fd5b809150509250929050565b60008060408385031215612f9057600080fd5b612f9983612cd9565b946020939093013593505050565b60008060408385031215612fba57600080fd5b82356001600160401b0380821115612fd157600080fd5b818501915085601f830112612fe557600080fd5b81356020612ff2826136f2565b604051612fff82826137e2565b8381528281019150858301600585901b870184018b101561301f57600080fd5b600096505b848710156130495761303581612cd9565b835260019690960195918301918301613024565b509650508601359250508082111561306057600080fd5b5061306d85828601612cf5565b9150509250929050565b60006020828403121561308957600080fd5b8135612dfa8161393a565b6000602082840312156130a657600080fd5b8151612dfa8161393a565b6000602082840312156130c357600080fd5b81356001600160401b038111156130d957600080fd5b61246a84828501612d6c565b6000602082840312156130f757600080fd5b5035919050565b60008060006060848603121561311357600080fd5b8335925060208401356001600160401b038082111561313157600080fd5b61313d87838801612d6c565b9350604086013591508082111561315357600080fd5b5061316086828701612d6c565b9150509250925092565b6000806040838503121561317d57600080fd5b50508035926020909101359150565b6000806000606084860312156131a157600080fd5b83359250602084013591506131b860408501612cd9565b90509250925092565b600080600080608085870312156131d757600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b8381101561322357815187529582019590820190600101613207565b509495945050505050565b60008151808452613246816020860160208601613777565b601f01601f19169290920160200192915050565b6000815161326c818560208601613777565b9290920192915050565b6bffffffffffffffffffffffff198360601b168152600082516132a0816014850160208701613777565b919091016014019392505050565b600082516132c0818460208701613777565b9190910192915050565b600080845481600182811c9150808316806132e657607f831692505b602080841082141561330657634e487b7160e01b86526022600452602486fd5b81801561331a576001811461332b57613358565b60ff19861689528489019650613358565b60008b81526020902060005b868110156133505781548b820152908501908301613337565b505084890196505b505050505050613368818561325a565b95945050505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061339d908301866131f3565b82810360608401526133af81866131f3565b905082810360808401526133c3818561322e565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906134099083018461322e565b979650505050505050565b6001600160a01b03841681526060602082018190526000906134389083018561322e565b828103604084015261344a818561322e565b9695505050505050565b602081526000612dfa60208301846131f3565b60408152600061347a60408301856131f3565b828103602084015261336881856131f3565b60c08152600061349f60c08301896131f3565b6020838203818501526134b2828a6131f3565b915083820360408501526134c682896131f3565b915083820360608501526134da82886131f3565b915083820360808501526134ee82876131f3565b84810360a0860152855180825282870193509082019060005b8181101561352c5784516001600160a01b031683529383019391830191600101613507565b50909b9a5050505050505050505050565b602081526000612dfa602083018461322e565b6020808252602f908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526e195c881b9bdc88185c1c1c9bdd9959608a1b606082015260800190565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f746f6b656e5f6964206e756d206973206e6f7420656e676f7568000000000000604082015260600190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6020808252600790820152661a5cc81d5cd95960ca1b604082015260600190565b6020808252600a90820152696973206e6f7420796f7560b01b604082015260600190565b60006001600160401b0382111561370b5761370b61387f565b5060051b60200190565b600082198211156137285761372861383d565b500190565b60008261373c5761373c613853565b500490565b600081600019048311821515161561375b5761375b61383d565b500290565b6000828210156137725761377261383d565b500390565b60005b8381101561379257818101518382015260200161377a565b838111156137a1576000848401525b50505050565b600181811c908216806137bb57607f821691505b602082108114156137dc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f191681016001600160401b03811182821017156138075761380761387f565b6040525050565b60006000198214156138225761382261383d565b5060010190565b60008261383857613838613853565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d11156138ae5760046000803e5060005160e01c5b90565b600060443d10156138bf5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156138ee57505050505090565b82850191508151818111156139065750505050505090565b843d87010160208285010111156139205750505050505090565b61392f602082860101876137e2565b509095945050505050565b6001600160e01b03198116811461085d57600080fdfea2646970667358221220b7bcb5ce4d80524ccaaf88a50dd45b6442ae8865d1540df6394395ceab6fbf3964736f6c63430008070033