0x608060405234801561001057600080fd5b50613371806100206000396000f3fe6080604052600436106101b75760003560e01c80638cfbe9d5116100ec578063d4e398c91161008a578063e87ba7aa11610064578063e87ba7aa146105c6578063ebff754e146105f6578063f2fde38b14610616578063fe43efda1461063657600080fd5b8063d4e398c914610548578063e34be38a1461055e578063e47103901461058b57600080fd5b8063a5ed536f116100c6578063a5ed536f14610457578063ac4afa381461048f578063b4988fd014610508578063c0eee2911461052857600080fd5b80638cfbe9d5146103f75780638da5cb5b146104245780638eec5d701461044257600080fd5b8063509484d511610159578063636b047511610133578063636b047514610368578063688a8197146103955780636c19e783146103c2578063715018a6146103e257600080fd5b8063509484d5146102ff578063548644151461031f57806362e08c811461034c57600080fd5b8063238ac93311610195578063238ac933146102545780632ad540ed14610274578063411e5b9c14610294578063445fc8fc146102b457600080fd5b8063131573f4146101bc5780631a186227146101d1578063211f41911461020e575b600080fd5b6101cf6101ca366004612c5b565b610656565b005b3480156101dd57600080fd5b506098546101f1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021a57600080fd5b50610246610229366004612d32565b60d060209081526000928352604080842090915290825290205481565b604051908152602001610205565b34801561026057600080fd5b506099546101f1906001600160a01b031681565b34801561028057600080fd5b506101cf61028f366004612d5c565b610bd0565b3480156102a057600080fd5b506101cf6102af366004612d5c565b610ff7565b3480156102c057600080fd5b506102ef6102cf366004612d32565b609b60209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610205565b34801561030b57600080fd5b506101cf61031a366004612d75565b611008565b34801561032b57600080fd5b5061024661033a366004612d5c565b60ca6020526000908152604090205481565b34801561035857600080fd5b50610246670de0b6b3a764000081565b34801561037457600080fd5b50610246610383366004612d5c565b60cc6020526000908152604090205481565b3480156103a157600080fd5b506102466103b0366004612d5c565b609a6020526000908152604090205481565b3480156103ce57600080fd5b506101cf6103dd366004612d75565b611019565b3480156103ee57600080fd5b506101cf61102a565b34801561040357600080fd5b50610246610412366004612d5c565b60cb6020526000908152604090205481565b34801561043057600080fd5b506033546001600160a01b03166101f1565b34801561044e57600080fd5b5060c954610246565b34801561046357600080fd5b50610246610472366004612d32565b60cf60209081526000928352604080842090915290825290205481565b34801561049b57600080fd5b506104af6104aa366004612d5c565b61103e565b604080516001600160a01b03998a168152978916602089015295909716948601949094526060850192909252608084015265ffffffffffff90811660a084015290811660c083015290911660e082015261010001610205565b34801561051457600080fd5b506101cf610523366004612d90565b6110b2565b34801561053457600080fd5b506101cf610543366004612e52565b6111c9565b34801561055457600080fd5b5061024660975481565b34801561056a57600080fd5b50610246610579366004612d5c565b60cd6020526000908152604090205481565b34801561059757600080fd5b506102ef6105a6366004612d32565b60d160209081526000928352604080842090915290825290205460ff1681565b3480156105d257600080fd5b506102ef6105e1366004612d5c565b60ce6020526000908152604090205460ff1681565b34801561060257600080fd5b506101cf610611366004612f70565b611735565b34801561062257600080fd5b506101cf610631366004612d75565b611a88565b34801561064257600080fd5b506101cf610651366004612d5c565b611afe565b61065e611dd2565b60c9548390811061068a5760405162461bcd60e51b815260040161068190612f92565b60405180910390fd5b834260c9828154811061069f5761069f612fc9565b6000918252602090912060069091020160050154600160301b900465ffffffffffff16116107055760405162461bcd60e51b81526020600482015260136024820152721d1a1a5cc81c1bdbdb081a5cc818db1bdcd959606a1b6044820152606401610681565b61070f8584611e2b565b600060c9868154811061072457610724612fc9565b60009182526020918290206040805161010081018252600690930290910180546001600160a01b0390811684526001820154811694840194909452600281015490931690820152600382015460608201526004820154608082015260059091015465ffffffffffff80821660a08401819052600160301b8304821660c0850152600160601b9092041660e08301529091504210156107f45760405162461bcd60e51b815260206004820152600d60248201526c3837b7b6103737ba1037b832b760991b6044820152606401610681565b600086815260cc602052604090205460808201511161084b5760405162461bcd60e51b81526020600482015260136024820152727377617020616d6f756e74206973207a65726f60681b6044820152606401610681565b600086815260ce602052604090205460ff161561089a5760405162461bcd60e51b815260206004820152600d60248201526c1c1bdbdb0818d85b98d95b1959609a1b6044820152606401610681565b600086815260cc6020526040812054608083015182916108ba9190611ec1565b9050868110156108d5576108ce8782611ec1565b91506108d8565b50855b60006108ff84608001516108f9866060015185611ed690919063ffffffff16565b90611ee2565b60008a815260cb60205260408120546060870151929350909161092191611ec1565b90508181111561092e5750805b60008a815260cb60205260409020546109479082611eee565b60008b815260cb602090815260408083209390935560cc9052205461096c9084611eee565b60008b815260cc602090815260408083209390935533825260cf81528282208d83529052205461099c9082611eee565b33600081815260cf602090815260408083208f845282528083209490945591815260d082528281208d825290915220546109d69084611eee565b33600090815260d0602090815260408083208e845282528083209390935560cd9052205415610a675760008a815260cd602090815260408083205433845260d083528184208e8552909252909120541115610a675760405162461bcd60e51b81526020600482015260116024820152701cddd85c1c19590c48195e18d959591959607a1b6044820152606401610681565b60008a815260cc6020526040902054608086015103610a925760008a815260ca602052604090204290555b60408501516001600160a01b0316610af057883414610aeb5760405162461bcd60e51b81526020600482015260156024820152740d2dcecc2d8d2c840c2dadeeadce840decc408aa89605b1b6044820152606401610681565b610b0a565b6040850151610b0a906001600160a01b031633308c611efa565b8460e0015165ffffffffffff16600003610b3d578015610b3d576020850151610b3d906001600160a01b03163383611f65565b8315610b7d5760408501516001600160a01b0316610b6457610b5f3385611f95565b610b7d565b6040850151610b7d906001600160a01b03163386611f65565b604080518281526020810185905233918c917fe5903af08592742a0f3632ef378be3612814d51c4169d376f3eff65dd798be6d910160405180910390a350505050505050610bcb6001606555565b505050565b610bd8611dd2565b60c95481908110610bfb5760405162461bcd60e51b815260040161068190612f92565b600060c98381548110610c1057610c10612fc9565b60009182526020918290206040805161010081018252600690930290910180546001600160a01b0390811680855260018301548216958501959095526002820154169183019190915260038101546060830152600481015460808301526005015465ffffffffffff80821660a0840152600160301b8204811660c0840152600160601b9091041660e082015291503314610ce35760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103837b7b61031b932b0ba37b960611b6044820152606401610681565b8060a0015165ffffffffffff16421080610d085750428160c0015165ffffffffffff16105b610d545760405162461bcd60e51b815260206004820181905260248201527f63616e6e6f7420636c61696d20647572696e6720706f6f6c2072756e6e696e676044820152606401610681565b600083815260ce602052604090205460ff1615610da55760405162461bcd60e51b815260206004820152600f60248201526e18dc99585d1bdc8818db185a5b5959608a1b6044820152606401610681565b600083815260ce60209081526040808320805460ff1916600117905560975460cc909252822054610de391670de0b6b3a7640000916108f991611ed6565b600085815260cc602052604081205491925090610e009083611ec1565b90508015610e485760408301516001600160a01b0316610e2b578251610e269082611f95565b610e48565b82516040840151610e48916001600160a01b039091169083611f65565b8115610f5e5760408301516001600160a01b0316610f3f5760985460408051600481526024810182526020810180516001600160e01b0316635ec2dc8d60e01b17905290516000926001600160a01b0316918591610ea69190613003565b60006040518083038185875af1925050503d8060008114610ee3576040519150601f19603f3d011682016040523d82523d6000602084013e610ee8565b606091505b5050905080610f395760405162461bcd60e51b815260206004820152601760248201527f5265766572743a206465706f73697452657761726428290000000000000000006044820152606401610681565b50610f5e565b6098546040840151610f5e916001600160a01b03918216911684611f65565b600085815260cb60205260408120546060850151610f7b91611ec1565b90508015610fa05783516020850151610fa0916001600160a01b039091169083611f65565b6040805182815260208101849052908101849052339087907fcc18e7bd1b741e3758cf9ab9e95470fee5a623324d2ad935624b0533f6a527169060600160405180910390a35050505050610ff46001606555565b50565b610fff6120b5565b610ff48161210f565b6110106120b5565b610ff481612161565b6110216120b5565b610ff4816121d1565b6110326120b5565b61103c600061223a565b565b60c9818154811061104e57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501546001600160a01b0394851696509284169491909316929165ffffffffffff80821691600160301b8104821691600160601b9091041688565b600054610100900460ff16158080156110d25750600054600160ff909116105b806110ec5750303b1580156110ec575060005460ff166001145b61114f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610681565b6000805460ff191660011790558015611172576000805461ff0019166101001790555b61117d84848461228c565b80156111c3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6111d1611dd2565b826060015160000361121c5760405162461bcd60e51b81526020600482015260146024820152730696e76616c696420616d6f756e74546f74616c360641b6044820152606401610681565b82608001516000036112675760405162461bcd60e51b8152602060048201526014602482015273696e76616c696420616d6f756e74546f74616c3160601b6044820152606401610681565b428360a0015165ffffffffffff1610156112b45760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081bdc195b905d60921b6044820152606401610681565b8260a0015165ffffffffffff168360c0015165ffffffffffff161161130d5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a590818db1bdcd9505d608a1b6044820152606401610681565b60e083015165ffffffffffff16158061133e57508260c0015165ffffffffffff168360e0015165ffffffffffff1610155b61137c5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a590818db185a5b505d608a1b6044820152606401610681565b825151603c10156113c25760405162461bcd60e51b815260206004820152601060248201526f6e616d6520697320746f6f206c6f6e6760801b6044820152606401610681565b6113f68360006040516020016113d9929190613083565b6040516020818303038152906040528051906020012083836122de565b60c9546101008401511561141a57610100840151600082815260cd60205260409020555b6101208401511561143b576101208401516000828152609a60205260409020555b61144e8460200151338660600151612482565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091523381600001906001600160a01b031690816001600160a01b031681525050846020015181602001906001600160a01b031690816001600160a01b031681525050846040015181604001906001600160a01b031690816001600160a01b031681525050846060015181606001818152505084608001518160800181815250508460a001518160a0019065ffffffffffff16908165ffffffffffff16815250508460c001518160c0019065ffffffffffff16908165ffffffffffff16815250508460e001518160e0019065ffffffffffff16908165ffffffffffff168152505060c981908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a08201518160050160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060c08201518160050160066101000a81548165ffffffffffff021916908365ffffffffffff16021790555060e082015181600501600c6101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050336001600160a01b0316827f43e681dad0de3a5462cd63d33992dae3c330b5db95ee20d755d6058619e769fe838860000151609a60008881526020019081526020016000205460cd600089815260200190815260200160002054604051611721949392919061315e565b60405180910390a35050610bcb6001606555565b61173d611dd2565b60c954829081106117605760405162461bcd60e51b815260040161068190612f92565b824260c9828154811061177557611775612fc9565b6000918252602090912060069091020160050154600160301b900465ffffffffffff16116117db5760405162461bcd60e51b81526020600482015260136024820152721d1a1a5cc81c1bdbdb081a5cc818db1bdcd959606a1b6044820152606401610681565b33600090815260cf602090815260408083208784529091529020548311156118375760405162461bcd60e51b815260206004820152600f60248201526e0696e76616c696420616d6f756e743608c1b6044820152606401610681565b33600081815260cf6020908152604080832088845282528083205493835260d082528083208884529091528120549091611876916108f9908790611ed6565b33600090815260cf6020908152604080832089845290915290205490915061189e9085611ec1565b33600081815260cf602090815260408083208a845282528083209490945591815260d0825282812088825290915220546118d89082611ec1565b33600090815260d06020908152604080832089845282528083209390935560cb905220546119069085611ec1565b600086815260cb602090815260408083209390935560cc9052205461192b9082611ec1565b600086815260cc602052604081209190915560c980548790811061195157611951612fc9565b600091825260208083206040805161010081018252600690940290910180546001600160a01b039081168552600182015481169385019390935260028101549092169083015260038101546060830152600481015460808301526005015465ffffffffffff80821660a0840152600160301b8204811660c0840152600160601b9091041660e0820181905290925090036119ff5760208101516119ff906001600160a01b0316333088611efa565b60408101516001600160a01b0316611a2057611a1b3383611f95565b611a39565b6040810151611a39906001600160a01b03163384611f65565b6040805186815260208101849052339188917fe856b1e530e2aa9a1c935290619c60b61de8f7837b5af14af46c51948663e48a910160405180910390a350505050611a846001606555565b5050565b611a906120b5565b6001600160a01b038116611af55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610681565b610ff48161223a565b611b06611dd2565b60c95481908110611b295760405162461bcd60e51b815260040161068190612f92565b8160c98181548110611b3d57611b3d612fc9565b6000918252602082206005600690920201015465ffffffffffff600160601b909104169003611b9e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b6044820152606401610681565b4260c98281548110611bb257611bb2612fc9565b6000918252602090912060069091020160050154600160601b900465ffffffffffff161115611c155760405162461bcd60e51b815260206004820152600f60248201526e636c61696d206e6f7420726561647960881b6044820152606401610681565b33600090815260d16020908152604080832086845290915290205460ff1615611c6a5760405162461bcd60e51b815260206004820152600760248201526618db185a5b595960ca1b6044820152606401610681565b33600090815260d1602090815260408083208684529091528120805460ff1916600117905560c9805485908110611ca357611ca3612fc9565b600091825260208083206040805161010081018252600690940290910180546001600160a01b03908116855260018201548116858501526002820154168483015260038101546060850152600481015460808501526005015465ffffffffffff80821660a0860152600160301b8204811660c0860152600160601b9091041660e084015233845260cf82528084208885529091529091205490915015611d775733600081815260cf6020908152604080832088845282529091205490830151611d77926001600160a01b0390911691611f65565b33600081815260cf6020908152604080832088845282529182902054915191825286917fff29b281372993483c1ce6b621ae07832d519c2294e43340f051312701ad132a910160405180910390a3505050610ff46001606555565b600260655403611e245760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610681565b6002606555565b6000828152609a602052604090205415611a84576040805133602082015260009101604051602081830303815290604052805190602001209050611e8382609a600086815260200190815260200160002054836125d0565b610bcb5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610681565b6000611ecd828461322a565b90505b92915050565b6000611ecd828461323d565b6000611ecd8284613254565b6000611ecd8284613276565b6040516001600160a01b03808516602483015283166044820152606481018290526111c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526125e8565b6040516001600160a01b038316602482015260448101829052610bcb90849063a9059cbb60e01b90606401611f2e565b80471015611fe55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610681565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612032576040519150601f19603f3d011682016040523d82523d6000602084013e612037565b606091505b5050905080610bcb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610681565b6001606555565b6033546001600160a01b0316331461103c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610681565b670de0b6b3a764000081111561215c5760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207478466565526174696f60701b6044820152606401610681565b609755565b6001600160a01b0381166121af5760405162461bcd60e51b81526020600482015260156024820152741a5b9d985b1a59081cdd185ad950dbdb9d1c9858dd605a1b6044820152606401610681565b609880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166122185760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b6044820152606401610681565b609980546001600160a01b0319166001600160a01b0392909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166122b35760405162461bcd60e51b815260040161068190613289565b6122bb6126ba565b6122c36126e9565b6122cc8361210f565b6122d582612161565b610bcb816121d1565b8142106123215760405162461bcd60e51b81526020600482015260116024820152701cda59db985d1d5c9948195e1c1a5c9959607a1b6044820152606401610681565b604080513360208083019190915281830186905246606083015260808083018690528351808403909101815260a0830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060c084015260dc8084018290528451808503909101815260fc90930190935281519101206123a88184612718565b6099546001600160a01b039081169116146123f95760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610681565b336000908152609b6020908152604080832085845290915290205460ff16156124585760405162461bcd60e51b81526020600482015260116024820152701c1bdbdb081b595cdcd859d9481d5cd959607a1b6044820152606401610681565b50336000908152609b6020908152604080832093835292905220805460ff19166001179055505050565b6040516370a0823160e01b815230600482015283906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156124cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ef91906132d4565b90506125066001600160a01b038316853086611efa565b6040516370a0823160e01b8152306004820152839061257c9083906001600160a01b038616906370a0823190602401602060405180830381865afa158015612552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257691906132d4565b90611ec1565b146125c95760405162461bcd60e51b815260206004820152601e60248201527f6e6f7420737570706f7274206465666c6174696f6e61727920746f6b656e00006044820152606401610681565b5050505050565b6000826125dd858461273c565b1490505b9392505050565b600061263d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127819092919063ffffffff16565b805190915015610bcb578080602001905181019061265b91906132ed565b610bcb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610681565b600054610100900460ff166126e15760405162461bcd60e51b815260040161068190613289565b61103c612798565b600054610100900460ff166127105760405162461bcd60e51b815260040161068190613289565b61103c6127c8565b600080600061272785856127ef565b9150915061273481612834565b509392505050565b600081815b84518110156127345761276d8286838151811061276057612760612fc9565b602002602001015161297e565b9150806127798161330f565b915050612741565b606061279084846000856129ad565b949350505050565b600054610100900460ff166127bf5760405162461bcd60e51b815260040161068190613289565b61103c3361223a565b600054610100900460ff166120ae5760405162461bcd60e51b815260040161068190613289565b60008082516041036128255760208301516040840151606085015160001a61281987828585612a88565b9450945050505061282d565b506000905060025b9250929050565b60008160048111156128485761284861304b565b036128505750565b60018160048111156128645761286461304b565b036128b15760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610681565b60028160048111156128c5576128c561304b565b036129125760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610681565b60038160048111156129265761292661304b565b03610ff45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610681565b600081831061299a576000828152602084905260409020611ecd565b6000838152602083905260409020611ecd565b606082471015612a0e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610681565b600080866001600160a01b03168587604051612a2a9190613003565b60006040518083038185875af1925050503d8060008114612a67576040519150601f19603f3d011682016040523d82523d6000602084013e612a6c565b606091505b5091509150612a7d87838387612b4c565b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612abf5750600090506003612b43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612b3c57600060019250925050612b43565b9150600090505b94509492505050565b60608315612bbb578251600003612bb4576001600160a01b0385163b612bb45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610681565b5081612790565b6127908383815115612bd05781518083602001fd5b8060405162461bcd60e51b81526004016106819190613328565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715612c2457612c24612bea565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612c5357612c53612bea565b604052919050565b600080600060608486031215612c7057600080fd5b833592506020808501359250604085013567ffffffffffffffff80821115612c9757600080fd5b818701915087601f830112612cab57600080fd5b813581811115612cbd57612cbd612bea565b8060051b9150612cce848301612c2a565b818152918301840191848101908a841115612ce857600080fd5b938501935b83851015612d0657843582529385019390850190612ced565b8096505050505050509250925092565b80356001600160a01b0381168114612d2d57600080fd5b919050565b60008060408385031215612d4557600080fd5b612d4e83612d16565b946020939093013593505050565b600060208284031215612d6e57600080fd5b5035919050565b600060208284031215612d8757600080fd5b611ecd82612d16565b600080600060608486031215612da557600080fd5b83359250612db560208501612d16565b9150612dc360408501612d16565b90509250925092565b600082601f830112612ddd57600080fd5b813567ffffffffffffffff811115612df757612df7612bea565b612e0a601f8201601f1916602001612c2a565b818152846020838601011115612e1f57600080fd5b816020850160208301376000918101602001919091529392505050565b803565ffffffffffff81168114612d2d57600080fd5b600080600060608486031215612e6757600080fd5b833567ffffffffffffffff80821115612e7f57600080fd5b908501906101408288031215612e9457600080fd5b612e9c612c00565b823582811115612eab57600080fd5b612eb789828601612dcc565b825250612ec660208401612d16565b6020820152612ed760408401612d16565b60408201526060830135606082015260808301356080820152612efc60a08401612e3c565b60a0820152612f0d60c08401612e3c565b60c0820152612f1e60e08401612e3c565b60e0820152610100838101359082015261012092830135928101929092529093506020850135925060408501359080821115612f5957600080fd5b50612f6686828701612dcc565b9150509250925092565b60008060408385031215612f8357600080fd5b50508035926020909101359150565b60208082526018908201527f7468697320706f6f6c20646f6573206e6f742065786973740000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60005b83811015612ffa578181015183820152602001612fe2565b50506000910152565b60008251613015818460208701612fdf565b9190910192915050565b60008151808452613037816020860160208601612fdf565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6007811061307f57634e487b7160e01b600052602160045260246000fd5b9052565b60408152600083516101408060408501526130a261018085018361301f565b915060208601516130be60608601826001600160a01b03169052565b5060408601516001600160a01b038116608086015250606086015160a0850152608086015160c085015260a086015161310160e086018265ffffffffffff169052565b5060c086015161010061311d8187018365ffffffffffff169052565b60e0880151915061012061313a8188018465ffffffffffff169052565b90880151928601929092525085015161016084015290506125e16020830184613061565b600061016060018060a01b0380885116845280602089015116602085015280604089015116604085015250606087015160608401526080870151608084015260a08701516131b660a085018265ffffffffffff169052565b5060c08701516131d060c085018265ffffffffffff169052565b5060e08701516131ea60e085018265ffffffffffff169052565b50806101008401526131fe8184018761301f565b6101208401959095525050610140015292915050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611ed057611ed0613214565b8082028115828204841417611ed057611ed0613214565b60008261327157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611ed057611ed0613214565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156132e657600080fd5b5051919050565b6000602082840312156132ff57600080fd5b815180151581146125e157600080fd5b60006001820161332157613321613214565b5060010190565b602081526000611ecd602083018461301f56fea264697066735822122067f73a1f40eed86ff8308595946a8c07c9cab78e13dbf3f0ae593864f6865cb464736f6c63430008110033