//
0x60806040523480156200001157600080fd5b50620000256001600160e01b036200002b16565b62000128565b6200004060ff6001600160e01b036200004316565b50565b603654600090610100900460ff1615620000c2578160ff1660011480156200007c57506200007a306001600160e01b036200012216565b155b620000b95760405162461bcd60e51b815260040180806020018281038252602e81526020018062003e5c602e913960400191505060405180910390fd5b5060006200011d565b60365460ff8084169116106200010a5760405162461bcd60e51b815260040180806020018281038252602e81526020018062003e5c602e913960400191505060405180910390fd5b506036805460ff191660ff831617905560015b919050565b3b151590565b613d2480620001386000396000f3fe6080604052600436106102c35760003560e01c806382e0a57411610170578063b83f91a2116100cc578063e30c397811610085578063e30c397814610960578063eaa8ba7f14610975578063f2fde38b146109da578063f5f1595d14610a0d578063f92d343314610a40578063fc7e286d14610a55578063fda0101a14610aa95761030a565b8063b83f91a2146108a6578063ce4b5bbe146108bb578063cef941e8146108d0578063d4ca0575146108e5578063d7fb044314610918578063df9cd84f1461092d5761030a565b806395fb16bb1161012957806395fb16bb1461077c5780639bf2f1ac14610791578063a20baee61461044f578063a3f4df7e146107a6578063a4e59ac814610830578063a7bfff9714610845578063ae918754146108915761030a565b806382e0a574146106a657806386da0824146106e1578063887105d3146107145780638b8fbd92146107295780638da5cb5b1461073e5780638f32d59b146107535761030a565b8063556be1011161021f57806376671808116101d857806376671808146105f757806377553ad414610628578063794e57241461063d578063795d26c31461065257806379ba5097146106675780637f7dde4a1461067c5780638129fc1c146106915761030a565b8063556be101146105375780635733d58f146105615780635d2de642146105765780635f788d65146105a957806372fe25aa1461044f578063741bef1a146105e25761030a565b80632e86bbd81161027c5780632e86bbd81461044f578063335525ad14610464578063389e92a5146104945780633cc74225146104c75780633d83908a146104f85780634870dd9a1461050d578063538153ca146105225761030a565b806314f6c3be1461030f57806316b9d3c5146103365780631bf43555146103a05780631cdc4700146103b557806328a0a04d146103e85780632e54bf95146104235761030a565b3661030a576102d0610ae4565b603b546102e3903463ffffffff610b2f16565b603b8190556040805191825251600080516020613a2a8339815191529181900360200190a1005b600080fd5b34801561031b57600080fd5b50610324610b92565b60408051918252519081900360200190f35b34801561034257600080fd5b506103696004803603602081101561035957600080fd5b50356001600160a01b0316610b98565b604080519586526020860194909452848401929092526001600160801b039081166060850152166080830152519081900360a00190f35b3480156103ac57600080fd5b50610324610bd3565b3480156103c157600080fd5b50610324600480360360208110156103d857600080fd5b50356001600160a01b0316610be0565b3480156103f457600080fd5b506103246004803603604081101561040b57600080fd5b506001600160801b0381358116916020013516610c88565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b5035610ca5565b005b34801561045b57600080fd5b50610324610e2e565b34801561047057600080fd5b5061044d6004803603604081101561048757600080fd5b5080359060200135610e3a565b3480156104a057600080fd5b50610324600480360360208110156104b757600080fd5b50356001600160a01b0316610e9e565b3480156104d357600080fd5b506104dc610f3b565b604080516001600160a01b039092168252519081900360200190f35b34801561050457600080fd5b506104dc610f4a565b34801561051957600080fd5b50610324610f59565b34801561052e57600080fd5b50610324610f5e565b34801561054357600080fd5b5061044d6004803603602081101561055a57600080fd5b5035610f64565b34801561056d57600080fd5b50610324610fd9565b34801561058257600080fd5b506103246004803603602081101561059957600080fd5b50356001600160a01b0316610fe5565b3480156105b557600080fd5b5061044d600480360360408110156105cc57600080fd5b50803590602001356001600160a01b0316610ff7565b3480156105ee57600080fd5b506104dc611178565b34801561060357600080fd5b5061060c611187565b604080516001600160801b039092168252519081900360200190f35b34801561063457600080fd5b506104dc61119d565b34801561064957600080fd5b506103246111b2565b34801561065e57600080fd5b506103246111be565b34801561067357600080fd5b5061044d6112bf565b34801561068857600080fd5b506104dc61131a565b34801561069d57600080fd5b5061044d611329565b3480156106b257600080fd5b50610324600480360360408110156106c957600080fd5b506001600160801b03813581169160200135166113a9565b3480156106ed57600080fd5b506103696004803603602081101561070457600080fd5b50356001600160a01b03166113c6565b34801561072057600080fd5b50610324611401565b34801561073557600080fd5b506103246114bd565b34801561074a57600080fd5b506104dc6114c3565b34801561075f57600080fd5b506107686114d2565b604080519115158252519081900360200190f35b34801561078857600080fd5b506104dc6114e3565b34801561079d57600080fd5b506103246114f2565b3480156107b257600080fd5b506107bb6114f8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107f55781810151838201526020016107dd565b50505050905090810190601f1680156108225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561083c57600080fd5b5061060c611521565b34801561085157600080fd5b506108786004803603602081101561086857600080fd5b50356001600160a01b0316611530565b6040805192835290151560208301528051918290030190f35b34801561089d57600080fd5b506104dc61154c565b3480156108b257600080fd5b506104dc61155b565b3480156108c757600080fd5b5061032461156a565b3480156108dc57600080fd5b50610324611572565b3480156108f157600080fd5b506103246004803603602081101561090857600080fd5b50356001600160a01b0316611578565b34801561092457600080fd5b5061032461167c565b34801561093957600080fd5b506103246004803603602081101561095057600080fd5b50356001600160a01b0316611682565b34801561096c57600080fd5b506104dc61171f565b34801561098157600080fd5b5061044d600480360360e081101561099857600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c0909101351661172e565b3480156109e657600080fd5b5061044d600480360360208110156109fd57600080fd5b50356001600160a01b03166119f9565b348015610a1957600080fd5b5061032460048036036020811015610a3057600080fd5b50356001600160a01b0316611ab0565b348015610a4c57600080fd5b50610324611bad565b348015610a6157600080fd5b50610a8860048036036020811015610a7857600080fd5b50356001600160a01b0316611bb8565b604080519283526001600160a01b0390911660208301528051918290030190f35b348015610ab557600080fd5b5061044d60048036036040811015610acc57600080fd5b506001600160a01b0381358116916020013516611bda565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b8152600401808060200182810382526027815260200180613a036027913960400191505060405180910390fd5b565b600082820183811015610b89576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b603b5490565b6041602052600090815260409020805460018201546002830154600390930154919290916001600160801b0380821691600160801b90041685565b68056bc75e2d6310000081565b6001600160a01b0381166000908152603d602052604081205480610c08576000915050610c83565b610c1061390c565b506001600160a01b0383166000908152603e60209081526040808320815160a08101835281548152600182015493810193909352600281015491830191909152600301546001600160801b038082166060840152600160801b90910416608082015290610c7d8383611e0e565b93505050505b919050565b604460209081526000928352604080842090915290825290205481565b8015610cb357610cb3611f0a565b336000908152603d6020526040902054610ccc816120c7565b603a546001600160a01b0316610ce181612106565b6000610cec33610e9e565b90506000610cf933610be0565b90506000610d07868361218d565b90506000610d1b868463ffffffff6121a316565b336000818152603d60205260409020600101549192506001600160a01b0390911690610d49908790836121e5565b6000610d5482611682565b90506000610d68828663ffffffff6121a316565b9050610d7483826123a9565b6040805182815233602082015281516001600160a01b03861692600080516020613c3e833981519152928290030190a2610dae33866124f5565b6000610dc0878763ffffffff6121a316565b9050610dcc338261257b565b6040805182815290513391600080516020613aa9833981519152919081900360200190a2604080518981526020810187905281513392600080516020613b8d833981519152928290030190a2610e2188612701565b5050505050505050505050565b670de0b6b3a764000081565b610e4261280d565b603c54801580610e50575082155b15610e5b5750610e9a565b603a54610e70906001600160a01b0316612106565b600080610e7e848685612856565b91509150610e8c828261294f565b610e968486612c49565b5050505b5050565b6001600160a01b0381166000908152603d602052604081205480610ec6576000915050610c83565b610ece61390c565b506001600160a01b0383166000908152603e60209081526040808320815160a08101835281548152600182015493810193909352600281015491830191909152600301546001600160801b038082166060840152600160801b90910416608082015290610c7d8383612d8c565b6001546001600160a01b031681565b6037546001600160a01b031681565b60c881565b60485481565b610f6d33612e7d565b610f7633612ed8565b610f7f81612f2e565b336000818152603f60209081526040918290208481556001908101805460ff19169091179055815184815291517f19bc932fb9e16a8b5a1e41be9f4c2de59d5ddd7567b8b81405f532ca00a9880e9281900390910190a250565b6714d1120d7b16000081565b60406020819052600091825290205481565b61100081612f75565b61100933612e7d565b61101282612fe1565b336000908152603d6020526040902054603a546001600160a01b031661103781612106565b81611046576110463384613020565b600061105133610e9e565b9050600061105e33610be0565b90506000611072858363ffffffff6121a316565b336000818152603d60205260409020600101549192506001600160a01b03909116906110a0908690836121e5565b60006110ab82611682565b905060006110bf828b63ffffffff610b2f16565b90506110cb83826123a9565b6040805182815233602082015281516001600160a01b03861692600080516020613c3e833981519152928290030190a2611105338b61307a565b6000611117868c63ffffffff610b2f16565b9050611123338261257b565b6040805182815290513391600080516020613aa9833981519152919081900360200190a2604080518881526020810187905281513392600080516020613b8d833981519152928290030190a2610e2187612701565b6002546001600160a01b031681565b604354600160801b90046001600160801b031681565b6036546201000090046001600160a01b031681565b67120a871cc002000081565b6000805460408051632f5a97e560e11b8152905183926001600160a01b031691635eb52fca916004808301926020929190829003018186803b15801561120357600080fd5b505afa158015611217573d6000803e3d6000fd5b505050506040513d602081101561122d57600080fd5b505160015460408051632f5a97e560e11b815290519293506000926001600160a01b0390921691635eb52fca91600480820192602092909190829003018186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b505190506112b8828263ffffffff610b2f16565b9250505090565b33806112c961171f565b6001600160a01b03161461130e5760405162461bcd60e51b81526004018080602001828103825260298152602001806139946029913960400191505060405180910390fd5b61131781613144565b50565b6000546001600160a01b031681565b600061133560016131a1565b9050801561134d576036805461ff0019166101001790555b61135561326d565b670de0b6b3a76400006042558015611317576036805461ff0019169055604080516001815290517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989181900360200190a150565b604560209081526000928352604080842090915290825290205481565b603e602052600090815260409020805460018201546002830154600390930154919290916001600160801b0380821691600160801b90041685565b6000805460408051630a7b61df60e11b8152905183926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b15801561144657600080fd5b505afa15801561145a573d6000803e3d6000fd5b505050506040513d602081101561147057600080fd5b505160015460408051630a7b61df60e11b815290519293506000926001600160a01b03909216916314f6c3be91600480820192602092909190829003018186803b15801561127a57600080fd5b60425481565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b603a546001600160a01b031681565b603c5490565b6040518060400160405280600d81526020016c14dd18589a5b1a5d1e541bdbdb609a1b81525081565b6043546001600160801b031681565b603f602052600090815260409020805460019091015460ff1682565b6039546001600160a01b031681565b6038546001600160a01b031681565b633b9aca0081565b60465481565b6001600160a01b038116600090815260406020819052812054806115a0576000915050610c83565b6001600160a01b0383166000908152603f6020526040812054906115d2670de0b6b3a76400008363ffffffff6121a316565b90506115dc61390c565b506001600160a01b0385166000908152604160209081526040808320815160a08101835281548152600182015493810193909352600281015491830191909152600301546001600160801b038082166060840152600160801b90910416608082015290611671670de0b6b3a764000061166561165888866132b2565b869063ffffffff61333e16565b9063ffffffff61339716565b979650505050505050565b60475481565b6001600160a01b038116600090815260406020819052812054806116aa576000915050610c83565b6116b261390c565b506001600160a01b0383166000908152604160209081526040808320815160a08101835281548152600182015493810193909352600281015491830191909152600301546001600160801b038082166060840152600160801b90910416608082015290610c7d8383611e0e565b6004546001600160a01b031690565b6117366114d2565b611787576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611790876133d9565b611799866133d9565b6117a2856133d9565b6117ab846133d9565b6117b4836133d9565b6117bd826133d9565b6001600160a01b038116156117d5576117d5816133d9565b6036805462010000600160b01b031916620100006001600160a01b038a811691820292909217909255603780546001600160a01b03199081168a841617909155600080548216898416179055603880548216888416179055603980548216878416179055600280548216868416179055603a805490911691841691909117905560408051918252517f3ca631ffcd2a9b5d9ae18543fc82f58eb4ca33af9e6ab01b7a8e95331e6ed985916020908290030190a1604080516001600160a01b038816815290517f143219c9e69b09e07e095fcc889b43d8f46ca892bba65f08dc3a0050869a56789181900360200190a1604080516001600160a01b038716815290517f78f058b189175430c48dc02699e3a0031ea4ff781536dc2fab847de4babdd8829181900360200190a1604080516001600160a01b038616815290517f227eec0ec317af6ab1a9587ffa1c84332522eb4c583a908f89babc05f8f339bd9181900360200190a1604080516001600160a01b038516815290517f65f4cf077bc01e4742eb5ad98326f6e95b63548ea24b17f8d5e823111fe788009181900360200190a1604080516001600160a01b038416815290517f8c537274438aa850a330284665d81a85dd38267d09e4050d416bfc94142db2649181900360200190a1604080516001600160a01b038316815290517f3055265812fb8447b9ada4a5d804ec43bd528ec40e89c952bbc7b85dc5ac68119181900360200190a150505050505050565b611a016114d2565b611a52576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b038316908117909155611a786114c3565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0381166000908152603d602052604081205480611ad8576000915050610c83565b6001600160a01b038084166000908152603d6020526040812060010154909116908115611b1d576001600160a01b0382166000908152603f6020526040902054611b27565b670de0b6b3a76400005b9050611b3161390c565b506001600160a01b0385166000908152603e60209081526040808320815160a08101835281548152600182015493810193909352600281015491830191909152600301546001600160801b038082166060840152600160801b90910416608082015290611671670de0b6b3a764000061166561165888866132b2565b6611c37937e0800081565b603d60205260009081526040902080546001909101546001600160a01b031682565b336000908152603d6020526040902054611bf3816120c7565b611bfc33613488565b611c053361353f565b603a546001600160a01b0316611c1a81612106565b6000611c2533610e9e565b90506000611c3233610be0565b90506000611c46858363ffffffff6121a316565b336000818152603d60205260409020600101549192506001600160a01b0390911690611c74908690836121e5565b6000611c7f82611682565b905080611c8c83826123a9565b6040805182815233602082015281516001600160a01b03861692600080516020613c3e833981519152928290030190a2611cc6338661257b565b604080518781526020810186905281513392600080516020613b8d833981519152928290030190a26040805186815290513391600080516020613aa9833981519152919081900360200190a2603b54611d25908763ffffffff6121a316565b603b8190556040805191825251600080516020613a2a8339815191529181900360200190a1604080513381526020810188905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a16036546040805163ea9638bf60e01b81523360048201526001600160a01b038d811660248301528c811660448301529151620100009093049091169163ea9638bf918991606480830192600092919082900301818588803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b505050505050505050505050505050565b6020810151606082015160808301516043546000939291906001600160801b03600160801b90910481169082161015611e4d5760009350505050610b8c565b6043546000908190611e6e906001600160801b03168563ffffffff61358b16565b90506001600160801b038116611e9e57611e97856116656042548b61333e90919063ffffffff16565b9150611ed6565b806001600160801b031660011415611ed157611e97633b9aca00611665876116656042548d61333e90919063ffffffff16565b600091505b611eea88633b9aca0063ffffffff61339716565b821015611eff57600095505050505050610b8c565b509695505050505050565b60025460408051630fdb11cf60e01b815290516000926001600160a01b031691630fdb11cf91600480830192602092919082900301818787803b158015611f5057600080fd5b505af1158015611f64573d6000803e3d6000fd5b505050506040513d6020811015611f7a57600080fd5b505160395460408051634d62283160e01b815290519293506000926001600160a01b0390921691634d62283191600480820192602092909190829003018186803b158015611fc757600080fd5b505afa158015611fdb573d6000803e3d6000fd5b505050506040513d6020811015611ff157600080fd5b505160375460408051630d293c7160e41b81526001600160a01b038085166004830152602482018790529151939450600093919092169163d293c710916044808301926020929190829003018186803b15801561204d57600080fd5b505afa158015612061573d6000803e3d6000fd5b505050506040513d602081101561207757600080fd5b5051905067120a871cc00200008110156120c25760405162461bcd60e51b8152600401808060200182810382526044815260200180613cab6044913960600191505060405180910390fd5b505050565b600081116113175760405162461bcd60e51b8152600401808060200182810382526030815260200180613c0e6030913960400191505060405180910390fd5b6001600160a01b03811661211957611317565b6000816001600160a01b03166346ad34d96040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561215657600080fd5b505af115801561216a573d6000803e3d6000fd5b505050506040513d602081101561218057600080fd5b50519050610e9a816135e4565b600081831061219c5781610b89565b5090919050565b6000610b8983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506136ff565b6001600160a01b0381161580159061220557506001600160a01b03831615155b156122d057600061221582611578565b9050836001600160a01b031663614d2ab683836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561227757600080fd5b505af115801561228b573d6000803e3d6000fd5b50506040805184815290516001600160a01b03861693507fcd2cdc1a4af71051394e9c6facd9a266b2ac5bd65d219a701eeda009f47682bf92509081900360200190a2505b6001600160a01b038316156120c25760006122ea83611ab0565b9050836001600160a01b031663614d2ab684836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561234c57600080fd5b505af1158015612360573d6000803e3d6000fd5b50506040805184815290516001600160a01b03871693507f2608b986a6ac0f6c629ca37018e80af5561e366252ae93602a96d3ab2e73e42d92509081900360200190a250505050565b6001600160a01b038216600090815260406020819052902081905580612439576001600160a01b0382166000818152604160209081526040808320838155600181018490556002810184905560030183905580518381529182019290925281517fbb1322f85cc7cc8bac4e172a5bc5dcc0c1959007f9a030032abf9258205f0e45929181900390910190a2610e9a565b6043546042546001600160801b03600160801b80840482166000818152604560209081526040808320978616808452978252808320546001600160a01b038b168085526041845293829020600181018990556002810182905560030180546001600160801b0319168a17909716958502959095179095558451868152908101849052845192959491927fbb1322f85cc7cc8bac4e172a5bc5dcc0c1959007f9a030032abf9258205f0e45929181900390910190a2505050505050565b806124ff57610e9a565b60385460408051631062c15f60e11b81523060048201526001600160a01b03858116602483015260448201859052915191909216916320c582be91606480830192600092919082900301818387803b15801561255a57600080fd5b505af115801561256e573d6000803e3d6000fd5b50505050610e9a81613796565b6001600160a01b0382166000908152603d6020526040902081905580612629576001600160a01b0382166000818152603d60209081526040808320600190810180546001600160a01b0319169055603e83528184208481559081018490556002810184905560030183905580518381529182018390528181019290925290517f2d6cc0bcdf72c9486f6451bde6b80f44066f4558f77f44dbfedbe7d8b295225a9181900360600190a2610e9a565b6043546042546001600160801b03600160801b8084048216600081815260446020908152604080832097861680845297825280832054848452604583528184208985528352818420546001600160a01b038c16808652603e855294839020600181018a90558281556002810182905560030180546001600160801b0319168b179098169686029690961790965580518781529182018690528181018590525192959493927f2d6cc0bcdf72c9486f6451bde6b80f44066f4558f77f44dbfedbe7d8b295225a916060908290030190a250505050505050565b8061270b57611317565b603b54600090612721908363ffffffff6121a316565b603b819055604080518281529051919250600080516020613a2a833981519152919081900360200190a1604080513381526020810184905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a1604051600090339084908381818185875af1925050503d80600081146127c8576040519150601f19603f3d011682016040523d82523d6000602084013e6127cd565b606091505b50509050806120c25760405162461bcd60e51b8152600401808060200182810382526021815260200180613af26021913960400191505060405180910390fd5b6037546001600160a01b03163314610b2d5760405162461bcd60e51b8152600401808060200182810382526029815260200180613ac96029913960400191505060405180910390fd5b600080600061288860475461287c670de0b6b3a76400008961333e90919063ffffffff16565b9063ffffffff610b2f16565b90508385111561289457fe5b838514156128b1576000604855670de0b6b3a76400009150612911565b6048546000906128df906128d388670de0b6b3a764000063ffffffff61333e16565b9063ffffffff6121a316565b90506128f6600161287c838863ffffffff61339716565b925061290c816128d3858863ffffffff61333e16565b604855505b612921818563ffffffff61339716565b9250612943612936848663ffffffff61333e16565b829063ffffffff6121a316565b60475550935093915050565b6042546000670de0b6b3a764000083111561296657fe5b6000612980670de0b6b3a76400008563ffffffff6121a316565b6043546001600160801b03600160801b8204811660008181526044602090815260408083209490951680835293905292832054939450909290916129c4898861333e565b905060006129d8838363ffffffff610b2f16565b6001600160801b038086166000818152604460209081526040808320948b16808452948252918290208590558151858152908101929092528181019290925290519192507fe12e2cd2c9afa8069203ca07e7eff1edce4a075686d0736a8e7e0d593597b207919081900360600190a185612b0f57612a666001600160801b038516600163ffffffff6137ec16565b604380546001600160801b03908116600160801b938216840217918290556040805193909204168252517fb50f0f59e7cb5b421dc77581c3a9919e3806e076e5fa78a874c3f120cb7d874d916020908290030190a1604380546001600160801b0319169055604080516000815290517f1f9dfc70cd666adb18a39d60a797518f7b4febf4b6e24ef37d44f6e1e7219fbe9181900360200190a1670de0b6b3a76400009650612bfb565b633b9aca00612b30670de0b6b3a76400006116658b8a63ffffffff61333e16565b1015612bdc57612b66670de0b6b3a7640000611665633b9aca00612b5a8c8b63ffffffff61333e16565b9063ffffffff61333e16565b9650612b826001600160801b038616600163ffffffff6137ec16565b604380546001600160801b0319166001600160801b0392831617908190556040805191909216815290517f1f9dfc70cd666adb18a39d60a797518f7b4febf4b6e24ef37d44f6e1e7219fbe916020908290030190a1612bfb565b612bf8670de0b6b3a76400006116658a8963ffffffff61333e16565b96505b60008711612c0557fe5b60428790556040805188815290517fc1a9618cb59ebca77cbdbc2949f126823c407ff13edb285fd0262519a9c18e8c9181900360200190a150505050505050505050565b600080546040805163071b32b560e31b81526004810185905290516001600160a01b039092169283926338d995a892602480820193929182900301818387803b158015612c9557600080fd5b505af1158015612ca9573d6000803e3d6000fd5b50505050612cb682613796565b60385460408051632770a7eb60e21b81523060048201526024810185905290516001600160a01b0390921691639dc29fac9160448082019260009290919082900301818387803b158015612d0957600080fd5b505af1158015612d1d573d6000803e3d6000fd5b5050604080516364a197f360e01b81523060048201526024810187905290516001600160a01b03851693506364a197f39250604480830192600092919082900301818387803b158015612d6f57600080fd5b505af1158015612d83573d6000803e3d6000fd5b50505050505050565b6080810151606082015182516020808501516001600160801b03808616600090815260448452604080822092871682529190935282205491949392918590612dda908463ffffffff6121a316565b6001600160801b03808716600090815260446020526040812092935091612e3d91633b9aca0091908490612e17908a16600163ffffffff6137ec16565b6001600160801b031681526020810191909152604001600020549063ffffffff61339716565b90506000612e6f670de0b6b3a76400006116658681612e62888863ffffffff610b2f16565b8f9063ffffffff61333e16565b9a9950505050505050505050565b6001600160a01b0381166000908152603f602052604090206001015460ff16156113175760405162461bcd60e51b8152600401808060200182810382526039815260200180613bad6039913960400191505060405180910390fd5b6001600160a01b0381166000908152603d60205260409020548015610e9a5760405162461bcd60e51b8152600401808060200182810382526028815260200180613be66028913960400191505060405180910390fd5b670de0b6b3a76400008111156113175760405162461bcd60e51b8152600401808060200182810382526033815260200180613b346033913960400191505060405180910390fd5b6001600160a01b0381166000908152603f602052604090206001015460ff1680612fa657506001600160a01b038116155b6113175760405162461bcd60e51b81526004018080602001828103825260468152602001806139bd6046913960600191505060405180910390fd5b600081116113175760405162461bcd60e51b8152600401808060200182810382526026815260200180613b676026913960400191505060405180910390fd5b6001600160a01b038281166000818152603d602052604080822060010180546001600160a01b0319169486169485179055517f094c08e96a8890877a8390b4f967180a7507ad8622244d05fcd0f9f8e086564e9190a35050565b60385460408051632ee65eeb60e21b81526001600160a01b038581166004830152306024830152604482018590529151919092169163bb997bac91606480830192600092919082900301818387803b1580156130d557600080fd5b505af11580156130e9573d6000803e3d6000fd5b5050603c546000925061310391508363ffffffff610b2f16565b603c8190556040805182815290519192507fa8e886449d8f7e765877b4a4f54632da3943ae454d5a272bdccb1781f086ff29919081900360200190a1505050565b600480546001600160a01b0319908116909155600380546001600160a01b0384811693821684179092556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b603654600090610100900460ff1615613210578160ff1660011480156131cd57506131cb3061383c565b155b6132085760405162461bcd60e51b815260040180806020018281038252602e815260200180613a7b602e913960400191505060405180910390fd5b506000610c83565b60365460ff8084169116106132565760405162461bcd60e51b815260040180806020018281038252602e815260200180613a7b602e913960400191505060405180910390fd5b506036805460ff191660ff83161790556001610c83565b600380546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350565b608081015160608201516040808401516020808601516001600160801b03808716600090815260458452858120918716815292529281205490949392908590613301908463ffffffff6121a316565b6001600160801b03808716600090815260456020526040812092935091612e3d91633b9aca0091908490612e17908a16600163ffffffff6137ec16565b60008261334d57506000610b8c565b8282028284828161335a57fe5b0414610b895760405162461bcd60e51b8152600401808060200182810382526021815260200180613b136021913960400191505060405180910390fd5b6000610b8983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613842565b6001600160a01b038116613434576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b80610e9a576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b603754604080516321e3780160e01b81526001600160a01b038481166004830152915191909216916321e37801916024808301926020929190829003018186803b1580156134d557600080fd5b505afa1580156134e9573d6000803e3d6000fd5b505050506040513d60208110156134ff57600080fd5b50516001146113175760405162461bcd60e51b815260040180806020018281038252604681526020018061394e6046913960600191505060405180910390fd5b600061354a82610e9e565b905060008111610e9a5760405162461bcd60e51b8152600401808060200182810382526031815260200180613a4a6031913960400191505060405180910390fd5b6000826001600160801b0316826001600160801b031611156135de5760405162461bcd60e51b8152600401808060200182810382526028815260200180613c5e6028913960400191505060405180910390fd5b50900390565b603c548015806135f2575081155b156135fd5750611317565b600061360983836138a7565b905060006136226042548361333e90919063ffffffff16565b6043546001600160801b03600160801b820481166000908152604560209081526040808320939094168252919091522054909150613666908263ffffffff610b2f16565b604380546001600160801b03600160801b808304821660009081526045602081815260408084209686168452958152858320979097559454918204831680825294865283812091909216808352908552908290205482519081529384019290925282810191909152517f2d6127771b164a9cc8827d24b5955db2a77e7a81dac389107ebb8bce9fb649689181900360600190a150505050565b6000818484111561378e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561375357818101518382015260200161373b565b50505050905090810190601f1680156137805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b603c546000906137ac908363ffffffff6121a316565b603c8190556040805182815290519192507fa8e886449d8f7e765877b4a4f54632da3943ae454d5a272bdccb1781f086ff29919081900360200190a15050565b60008282016001600160801b038085169082161015610b895760405162461bcd60e51b8152600401808060200182810382526025815260200180613c866025913960400191505060405180910390fd5b3b151590565b600081836138915760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561375357818101518382015260200161373b565b50600083858161389d57fe5b0495945050505050565b6000806138cb60465461287c670de0b6b3a76400008761333e90919063ffffffff16565b905060006138df828563ffffffff61339716565b90506139016138f4828663ffffffff61333e16565b839063ffffffff6121a316565b604655949350505050565b6040518060a0016040528060008152602001600081526020016000815260200160006001600160801b0316815260200160006001600160801b03168152509056fe53746162696c697479506f6f6c3a2063616c6c6572206d757374206861766520616e206163746976652074726f766520746f207769746864726177204554484761696e20746f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e657253746162696c697479506f6f6c3a20546167206d757374206265206120726567697374657265642066726f6e7420656e642c206f7220746865207a65726f206164647265737353746162696c697479506f6f6c3a2043616c6c6572206973206e6f7420416374697665506f6f6cceb6d671277d4354fd29977ada70695fbd93a16612abf765d6b0e25c28dc6db353746162696c697479506f6f6c3a2063616c6c6572206d7573742068617665206e6f6e2d7a65726f20455448204761696e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564bce78369dccab09eec1986f4d409ab09ffbb47d65423e5148fcf98411c5111c953746162696c697479506f6f6c3a2043616c6c6572206973206e6f742054726f76654d616e6167657253746162696c697479506f6f6c3a2073656e64696e6720455448206661696c6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753746162696c697479506f6f6c3a204b69636b6261636b2072617465206d75737420626520696e2072616e6765205b302c315d53746162696c697479506f6f6c3a20416d6f756e74206d757374206265206e6f6e2d7a65726f51457222ebca92c335c9c86e2baa1cc0e40ffaa9084a51452980d5ba8dec2f6353746162696c697479506f6f6c3a206d757374206e6f7420616c7265616479206265206120726567697374657265642066726f6e7420656e6453746162696c697479506f6f6c3a2055736572206d7573742068617665206e6f206465706f73697453746162696c697479506f6f6c3a2055736572206d75737420686176652061206e6f6e2d7a65726f206465706f73697499920012339b5a3368d3a04b8606ce412c46ed92b7dcd8602d41fc8862cb8f254c697175697479536166654d6174683132383a207375627472616374696f6e206f766572666c6f774c697175697479536166654d6174683132383a206164646974696f6e206f766572666c6f7753746162696c697479506f6f6c3a2043616e6e6f74207769746864726177207768696c65207468657265206172652074726f766573207769746820494352203c204d4352a26469706673582212207e48b16f9472d4f0b53b6a3ff64c192625a6bd67f12f20c5aa16877a9173a74564736f6c634300060b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564