60806040523480156200001157600080fd5b5060405162003624380380620036248339810160408190526200003491620005b8565b816200004260003362000097565b6200004f60013362000097565b6200005d60016000620000a7565b6200006881620000f2565b506001600160a01b038116156200008457620000848162000107565b6200008f82620001d2565b50506200083c565b620000a38282620001eb565b5050565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b8051620000a3906005906020840190620004f5565b60006200011581336200028b565b6200012b826200032660201b62000fd21760201c565b620001b15760405162461bcd60e51b8152602060048201526044602482018190527f476976656e204f70656e53656150726f7879206d757374206569746865722062908201527f65207a65726f206f7220726566657220746f20612076616c696420636f6e747260648201526330b1ba1760e11b608482015260a4015b60405180910390fd5b600280546001600160a01b0384166001600160a01b03199091161790555050565b6000620001e081336200028b565b620000a382620000f2565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000a3576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000a357620002d5816001600160a01b031660146200033560201b62000fe11760201c565b620002eb83602062000fe162000335821b17811c565b604051602001620002fe92919062000685565b60408051601f198184030181529082905262461bcd60e51b8252620001a891600401620006fe565b6001600160a01b03163b151590565b60606000620003468360026200074e565b6200035390600262000733565b6001600160401b038111156200036d576200036d62000826565b6040519080825280601f01601f19166020018201604052801562000398576020820181803683370190505b509050600360fc1b81600081518110620003b657620003b662000810565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003e857620003e862000810565b60200101906001600160f81b031916908160001a90535060006200040e8460026200074e565b6200041b90600162000733565b90505b60018111156200049d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062000453576200045362000810565b1a60f81b8282815181106200046c576200046c62000810565b60200101906001600160f81b031916908160001a90535060049490941c936200049581620007a3565b90506200041e565b508315620004ee5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620001a8565b9392505050565b8280546200050390620007bd565b90600052602060002090601f01602090048101928262000527576000855562000572565b82601f106200054257805160ff191683800117855562000572565b8280016001018555821562000572579182015b828111156200057257825182559160200191906001019062000555565b506200058092915062000584565b5090565b5b8082111562000580576000815560010162000585565b80516001600160a01b0381168114620005b357600080fd5b919050565b60008060408385031215620005cc57600080fd5b82516001600160401b0380821115620005e457600080fd5b818501915085601f830112620005f957600080fd5b8151818111156200060e576200060e62000826565b604051601f8201601f19908116603f0116810190838211818310171562000639576200063962000826565b816040528281528860208487010111156200065357600080fd5b6200066683602083016020880162000770565b80965050505050506200067c602084016200059b565b90509250929050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351620006bf81601785016020880162000770565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351620006f281602884016020880162000770565b01602801949350505050565b60208152600082518060208401526200071f81604085016020870162000770565b601f01601f19169190910160400192915050565b60008219821115620007495762000749620007fa565b500190565b60008160001904831182151516156200076b576200076b620007fa565b500290565b60005b838110156200078d57818101518382015260200162000773565b838111156200079d576000848401525b50505050565b600081620007b557620007b5620007fa565b506000190190565b600181811c90821680620007d257607f821691505b60208210811415620007f457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612dd8806200084c6000396000f3fe608060405234801561001057600080fd5b50600436106101ad5760003560e01c80636b20c454116100ee578063b5f4975911610097578063d81d0a1511610071578063d81d0a1514610395578063de9f9650146103a8578063e985e9c5146103b0578063f242432a146103c357600080fd5b8063b5f497591461035c578063b9df78ef1461036f578063d547741f1461038257600080fd5b8063a22cb465116100c8578063a22cb4651461031b578063adcaf5671461032e578063b50cbd9f1461034157600080fd5b80636b20c454146102c957806391d14854146102dc578063a217fddf1461031357600080fd5b806336568abe1161015b57806352a9c8d71161013557806352a9c8d7146102a05780635c36b186146102a75780635fc26826146102ae5780636102de98146102b657600080fd5b806336568abe146102665780634cf020fa146102795780634e1273f41461028057600080fd5b8063248a9ca31161018c578063248a9ca31461021b5780632eb2c2d61461023e5780632f2ff15d1461025357600080fd5b8062fdd58e146101b257806301ffc9a7146101d85780630e89341c146101fb575b600080fd5b6101c56101c036600461261d565b6103d6565b6040519081526020015b60405180910390f35b6101eb6101e636600461275a565b610484565b60405190151581526020016101cf565b61020e61020936600461271c565b61049e565b6040516101cf9190612b03565b6101c561022936600461271c565b60009081526020819052604090206001015490565b61025161024c36600461245d565b6104d9565b005b610251610261366004612735565b61057b565b610251610274366004612735565b6105a6565b60016101c5565b61029361028e366004612649565b610632565b6040516101cf9190612ac2565b60006101c5565b60016101eb565b610251610770565b6101eb6102c4366004612424565b61097a565b6102516102d7366004612574565b610a89565b6101eb6102ea366004612735565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101c5600081565b6102516103293660046125ea565b610b0b565b61025161033c366004612574565b610b16565b6002546040516001600160a01b0390911681526020016101cf565b61025161036a366004612407565b610d54565b61025161037d3660046127b1565b610e3b565b610251610390366004612735565b610e50565b6102516103a3366004612574565b610e76565b6101c5600181565b6101eb6103be366004612424565b610ef5565b6102516103d136600461250b565b610f37565b60006001600160a01b0383166104595760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526003602090815260408083206001600160a01b03861684529091529020545b92915050565b600061048f826111a6565b8061047e575061047e826111db565b60606104a98261121b565b6104b2836112af565b6040516020016104c3929190612861565b6040516020818303038152906040529050919050565b6001600160a01b0385163314806104f557506104f58533610ef5565b6105675760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610450565b61057485858585856113b5565b5050505050565b600082815260208190526040902060010154610597813361161c565b6105a1838361169a565b505050565b6001600160a01b03811633146106245760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610450565b61062e8282611738565b5050565b606081518351146106ab5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610450565b6000835167ffffffffffffffff8111156106c7576106c7612cb8565b6040519080825280602002602001820160405280156106f0578160200160208202803683370190505b50905060005b84518110156107685761073b85828151811061071457610714612ca2565b602002602001015185838151811061072e5761072e612ca2565b60200260200101516103d6565b82828151811061074d5761074d612ca2565b602090810291909101015261076181612c47565b90506106f6565b509392505050565b610780637965db0b60e01b610484565b6107f25760405162461bcd60e51b815260206004820152602860248201527f53686f756c6420737570706f72742049416363657373436f6e74726f6c20696e60448201527f746572666163652e0000000000000000000000000000000000000000000000006064820152608401610450565b6108026301ffc9a760e01b610484565b6108745760405162461bcd60e51b815260206004820152602160248201527f53686f756c6420737570706f7274204945524331363520696e7465726661636560448201527f2e000000000000000000000000000000000000000000000000000000000000006064820152608401610450565b610884636cdb3d1360e11b610484565b6108f65760405162461bcd60e51b815260206004820152602260248201527f53686f756c6420737570706f727420494552433131353520696e74657266616360448201527f652e0000000000000000000000000000000000000000000000000000000000006064820152608401610450565b6109066303a24d0760e21b610484565b6109785760405162461bcd60e51b815260206004820152602d60248201527f53686f756c6420737570706f72742049455243313135354d657461646174615560448201527f524920696e746572666163652e000000000000000000000000000000000000006064820152608401610450565b565b6002546000906001600160a01b03168015610a7f57466001148061099e5750466004145b15610a4c576040517fc45527910000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152808516919083169063c45527919060240160206040518083038186803b158015610a0257600080fd5b505afa158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a9190612794565b6001600160a01b03161491505061047e565b4660891480610a5d57504662013881145b15610a7f57826001600160a01b0316816001600160a01b03161491505061047e565b5060009392505050565b6001610a95813361161c565b8151835114610afa5760405162461bcd60e51b815260206004820152602b60248201527f546865206c656e677468206f66206974656d7320616e6420616d6f756e74732060448201526a36bab9ba1036b0ba31b41760a91b6064820152608401610450565b610b058484846117b7565b50505050565b61062e338383611a34565b6000825167ffffffffffffffff811115610b3257610b32612cb8565b604051908082528060200260200182016040528015610b5b578160200160208202803683370190505b50905060005b8351811015610ba75784828281518110610b7d57610b7d612ca2565b6001600160a01b039092166020928302919091019091015280610b9f81612c47565b915050610b61565b506000610bb48285610632565b90508251845114610c1b5760405162461bcd60e51b815260206004820152602b60248201527f546865206c656e677468206f66206974656d7320616e6420616d6f756e74732060448201526a36bab9ba1036b0ba31b41760a91b6064820152608401610450565b8251815114610c6c5760405162461bcd60e51b815260206004820152600f60248201527f496e7465726e616c206572726f722e00000000000000000000000000000000006044820152606401610450565b60005b8351811015610d4c57818181518110610c8a57610c8a612ca2565b6020026020010151848281518110610ca457610ca4612ca2565b60200260200101511115610cd0858381518110610cc357610cc3612ca2565b60200260200101516112af565b610ce5878481518110610cc357610cc3612ca2565b610cfa858581518110610cc357610cc3612ca2565b604051602001610d0c93929190612890565b60405160208183030381529060405290610d395760405162461bcd60e51b81526004016104509190612b03565b5080610d4481612c47565b915050610c6f565b505050505050565b6000610d60813361161c565b6001600160a01b0382163b610e045760405162461bcd60e51b8152602060048201526044602482018190527f476976656e204f70656e53656150726f7879206d757374206569746865722062908201527f65207a65726f206f7220726566657220746f20612076616c696420636f6e747260648201527f6163742e00000000000000000000000000000000000000000000000000000000608482015260a401610450565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384161790555050565b6000610e47813361161c565b61062e82611b29565b600082815260208190526040902060010154610e6c813361161c565b6105a18383611738565b6001610e82813361161c565b8151835114610ee75760405162461bcd60e51b815260206004820152602b60248201527f546865206c656e677468206f66206974656d7320616e6420616d6f756e74732060448201526a36bab9ba1036b0ba31b41760a91b6064820152608401610450565b606061057485858584611b3c565b6001600160a01b03808316600090815260046020908152604080832093851683529290529081205460ff1680610f305750610f30838361097a565b9392505050565b6001600160a01b038516331480610f535750610f538533610ef5565b610fc55760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201527f20617070726f76656400000000000000000000000000000000000000000000006064820152608401610450565b6105748585858585611d2e565b6001600160a01b03163b151590565b60606000610ff0836002612b66565b610ffb906002612b3a565b67ffffffffffffffff81111561101357611013612cb8565b6040519080825280601f01601f19166020018201604052801561103d576020820181803683370190505b509050600360fc1b8160008151811061105857611058612ca2565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106110a3576110a3612ca2565b60200101906001600160f81b031916908160001a90535060006110c7846002612b66565b6110d2906001612b3a565b90505b6001811115611157577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061111357611113612ca2565b1a60f81b82828151811061112957611129612ca2565b60200101906001600160f81b031916908160001a90535060049490941c9361115081612bc8565b90506110d5565b508315610f305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610450565b60006001600160e01b03198216637965db0b60e01b148061047e57506301ffc9a760e01b6001600160e01b031983161461047e565b60006001600160e01b03198216636cdb3d1360e11b148061120c57506001600160e01b031982166303a24d0760e21b145b8061047e575061047e826111a6565b60606005805461122a90612bdf565b80601f016020809104026020016040519081016040528092919081815260200182805461125690612bdf565b80156112a35780601f10611278576101008083540402835291602001916112a3565b820191906000526020600020905b81548152906001019060200180831161128657829003601f168201915b50505050509050919050565b6060816112d35750506040805180820190915260018152600360fc1b602082015290565b8160005b81156112fd57806112e781612c47565b91506112f69050600a83612b52565b91506112d7565b60008167ffffffffffffffff81111561131857611318612cb8565b6040519080825280601f01601f191660200182016040528015611342576020820181803683370190505b5090505b84156113ad57611357600183612b85565b9150611364600a86612c62565b61136f906030612b3a565b60f81b81838151811061138457611384612ca2565b60200101906001600160f81b031916908160001a9053506113a6600a86612b52565b9450611346565b949350505050565b81518351146114175760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610450565b6001600160a01b03841661147b5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610450565b3361148a818787878787611edf565b60005b84518110156115b65760008582815181106114aa576114aa612ca2565b6020026020010151905060008583815181106114c8576114c8612ca2565b60209081029190910181015160008481526003835260408082206001600160a01b038e16835290935291909120549091508181101561155c5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610450565b60008381526003602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061159b908490612b3a565b92505081905550505050806115af90612c47565b905061148d565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611606929190612ad5565b60405180910390a4610d4c818787878787611f6e565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661062e57611658816001600160a01b03166014610fe1565b611663836020610fe1565b6040516020016116749291906129a0565b60408051601f198184030181529082905262461bcd60e51b825261045091600401612b03565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661062e576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556116f43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff161561062e576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b0383166118335760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610450565b80518251146118955760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610450565b60003390506118b881856000868660405180602001604052806000815250611edf565b60005b83518110156119d55760008482815181106118d8576118d8612ca2565b6020026020010151905060008483815181106118f6576118f6612ca2565b60209081029190910181015160008481526003835260408082206001600160a01b038c16835290935291909120549091508181101561199c5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152608401610450565b60009283526003602090815260408085206001600160a01b038b16865290915290922091039055806119cd81612c47565b9150506118bb565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a26929190612ad5565b60405180910390a450505050565b816001600160a01b0316836001600160a01b03161415611abc5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610450565b6001600160a01b03838116600081815260046020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b805161062e906005906020840190612279565b6001600160a01b038416611bb85760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610450565b8151835114611c1a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610450565b33611c2a81600087878787611edf565b60005b8451811015611cc657838181518110611c4857611c48612ca2565b602002602001015160036000878481518110611c6657611c66612ca2565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254611cae9190612b3a565b90915550819050611cbe81612c47565b915050611c2d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611d17929190612ad5565b60405180910390a461057481600087878787611f6e565b6001600160a01b038416611d925760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610450565b33611db1818787611da288612123565b611dab88612123565b87611edf565b60008481526003602090815260408083206001600160a01b038a16845290915290205483811015611e375760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610450565b60008581526003602090815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290611e76908490612b3a565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611ed682888888888861216e565b50505050505050565b6001600160a01b0385161580611efc57506001600160a01b038416155b610d4c5760405162461bcd60e51b815260206004820152602f60248201527f4e46547320696e207468697320636f6c6c656374696f6e2063616e206e6f742060448201527f6265207472616e736665727265642e00000000000000000000000000000000006064820152608401610450565b6001600160a01b0384163b15610d4c5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611fb29089908990889088908890600401612a21565b602060405180830381600087803b158015611fcc57600080fd5b505af1925050508015611ffc575060408051601f3d908101601f19168201909252611ff991810190612777565b60015b6120b257612008612cce565b806308c379a01415612042575061201d612cea565b806120285750612044565b8060405162461bcd60e51b81526004016104509190612b03565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610450565b6001600160e01b0319811663bc197c8160e01b14611ed65760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610450565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061215d5761215d612ca2565b602090810291909101015292915050565b6001600160a01b0384163b15610d4c5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906121b29089908990889088908890600401612a7f565b602060405180830381600087803b1580156121cc57600080fd5b505af19250505080156121fc575060408051601f3d908101601f191682019092526121f991810190612777565b60015b61220857612008612cce565b6001600160e01b0319811663f23a6e6160e01b14611ed65760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610450565b82805461228590612bdf565b90600052602060002090601f0160209004810192826122a757600085556122ed565b82601f106122c057805160ff19168380011785556122ed565b828001600101855582156122ed579182015b828111156122ed5782518255916020019190600101906122d2565b506122f99291506122fd565b5090565b5b808211156122f957600081556001016122fe565b600067ffffffffffffffff83111561232c5761232c612cb8565b604051612343601f8501601f191660200182612c1a565b80915083815284848401111561235857600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261238157600080fd5b8135602061238e82612b16565b60405161239b8282612c1a565b8381528281019150858301600585901b870184018810156123bb57600080fd5b60005b858110156123da578135845292840192908401906001016123be565b5090979650505050505050565b600082601f8301126123f857600080fd5b610f3083833560208501612312565b60006020828403121561241957600080fd5b8135610f3081612d74565b6000806040838503121561243757600080fd5b823561244281612d74565b9150602083013561245281612d74565b809150509250929050565b600080600080600060a0868803121561247557600080fd5b853561248081612d74565b9450602086013561249081612d74565b9350604086013567ffffffffffffffff808211156124ad57600080fd5b6124b989838a01612370565b945060608801359150808211156124cf57600080fd5b6124db89838a01612370565b935060808801359150808211156124f157600080fd5b506124fe888289016123e7565b9150509295509295909350565b600080600080600060a0868803121561252357600080fd5b853561252e81612d74565b9450602086013561253e81612d74565b93506040860135925060608601359150608086013567ffffffffffffffff81111561256857600080fd5b6124fe888289016123e7565b60008060006060848603121561258957600080fd5b833561259481612d74565b9250602084013567ffffffffffffffff808211156125b157600080fd5b6125bd87838801612370565b935060408601359150808211156125d357600080fd5b506125e086828701612370565b9150509250925092565b600080604083850312156125fd57600080fd5b823561260881612d74565b91506020830135801515811461245257600080fd5b6000806040838503121561263057600080fd5b823561263b81612d74565b946020939093013593505050565b6000806040838503121561265c57600080fd5b823567ffffffffffffffff8082111561267457600080fd5b818501915085601f83011261268857600080fd5b8135602061269582612b16565b6040516126a28282612c1a565b8381528281019150858301600585901b870184018b10156126c257600080fd5b600096505b848710156126ee5780356126da81612d74565b8352600196909601959183019183016126c7565b509650508601359250508082111561270557600080fd5b5061271285828601612370565b9150509250929050565b60006020828403121561272e57600080fd5b5035919050565b6000806040838503121561274857600080fd5b82359150602083013561245281612d74565b60006020828403121561276c57600080fd5b8135610f3081612d8c565b60006020828403121561278957600080fd5b8151610f3081612d8c565b6000602082840312156127a657600080fd5b8151610f3081612d74565b6000602082840312156127c357600080fd5b813567ffffffffffffffff8111156127da57600080fd5b8201601f810184136127eb57600080fd5b6113ad84823560208401612312565b600081518084526020808501945080840160005b8381101561282a5781518752958201959082019060010161280e565b509495945050505050565b6000815180845261284d816020860160208601612b9c565b601f01601f19169290920160200192915050565b60008351612873818460208801612b9c565b835190830190612887818360208801612b9c565b01949350505050565b7f5b000000000000000000000000000000000000000000000000000000000000008152600084516128c8816001850160208901612b9c565b7f5d206f66206974656d205b000000000000000000000000000000000000000000600191840191820152845161290581600c840160208901612b9c565b7f5d206172652072657175697265642c2062757420796f7520646f206f776e206f600c92909101918201527f6e6c79205b000000000000000000000000000000000000000000000000000000602c8201528351612969816031840160208801612b9c565b7f5d2e0000000000000000000000000000000000000000000000000000000000006031929091019182015260330195945050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516129d8816017850160208801612b9c565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612a15816028840160208801612b9c565b01602801949350505050565b60006001600160a01b03808816835280871660208401525060a06040830152612a4d60a08301866127fa565b8281036060840152612a5f81866127fa565b90508281036080840152612a738185612835565b98975050505050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612ab760a0830184612835565b979650505050505050565b602081526000610f3060208301846127fa565b604081526000612ae860408301856127fa565b8281036020840152612afa81856127fa565b95945050505050565b602081526000610f306020830184612835565b600067ffffffffffffffff821115612b3057612b30612cb8565b5060051b60200190565b60008219821115612b4d57612b4d612c76565b500190565b600082612b6157612b61612c8c565b500490565b6000816000190483118215151615612b8057612b80612c76565b500290565b600082821015612b9757612b97612c76565b500390565b60005b83811015612bb7578181015183820152602001612b9f565b83811115610b055750506000910152565b600081612bd757612bd7612c76565b506000190190565b600181811c90821680612bf357607f821691505b60208210811415612c1457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8201601f1916810167ffffffffffffffff81118282101715612c4057612c40612cb8565b6040525050565b6000600019821415612c5b57612c5b612c76565b5060010190565b600082612c7157612c71612c8c565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d1115612ce75760046000803e5060005160e01c5b90565b600060443d1015612cf85790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612d2857505050505090565b8285019150815181811115612d405750505050505090565b843d8701016020828501011115612d5a5750505050505090565b612d6960208286010187612c1a565b509095945050505050565b6001600160a01b0381168114612d8957600080fd5b50565b6001600160e01b031981168114612d8957600080fdfea2646970667358221220a0377c4a3ad541c49764c367c109c0490fc5f63ef65d7dcc2ec5bc21b9ea6fc964736f6c634300080700330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1000000000000000000000000000000000000000000000000000000000000003368747470733a2f2f73746167696e672e6170692e736c6179746f6561726e2e696f2f6974656d2f6d657461646174613f69643d00000000000000000000000000