60806040526001805460ff60a01b1916905560006009553480156200002357600080fd5b506200002f336200006e565b600080546040516001600160a01b0390911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a362000090565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b614efc80620000a06000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c80638a6db9c3116101de578063b7b728991161010f578063dc1454e8116100ad578063ef55bec61161007c578063ef55bec61461108c578063f2fde38b146110eb578063f9f92be414611111578063fe575a87146111375761038e565b8063dc1454e814610f65578063dd62ed3e14610fd3578063e3ee160e14611001578063e94a0102146110605761038e565b8063c0ee0b8a116100e9578063c0ee0b8a14610d7e578063cf09299514610e37578063d505accf14610f0c578063d916948714610f5d5761038e565b8063b7b7289914610c91578063bd10243014610d4a578063be76ebe514610d525761038e565b8063a35b4e7f1161017c578063aa20e1e411610156578063aa20e1e414610be9578063aa271e1a14610c0f578063ad38bf2214610c35578063b2118a8d14610c5b5761038e565b8063a35b4e7f14610b23578063a457c2d714610b91578063a9059cbb14610bbd5761038e565b80639fd0506d116101b85780639fd0506d14610a1e5780639fd5a6cf14610a26578063a0cc6a6814610aef578063a2ded11514610af75761038e565b80638a6db9c3146109e85780638da5cb5b14610a0e57806395d89b4114610a165761038e565b806340c10f19116102c35780635cd8a76b116102615780637f2eecc3116102305780637f2eecc3146108dd57806380e56f42146108e55780638456cb591461090b57806388b7ab63146109135761038e565b80635cd8a76b1461081b5780636d9311aa1461082357806370a08231146108915780637ecebe00146108b75761038e565b806351276d201161029d57806351276d20146107a4578063554bab3c146107ac5780635a049a70146107d25780635c975abb146108135761038e565b806340c10f19146106ed57806342966c681461071957806345a0b891146107365761038e565b80632ab600451161033057806335d99f351161030a57806335d99f351461068d57806338a63183146106b157806339509351146106b95780633f4ba83a146106e55761038e565b80632ab600451461064157806330adf81f14610667578063313ce5671461066f5761038e565b806317ffc3201161036c57806317ffc320146105a557806318160ddd146105cb5780631a895266146105e557806323b872dd1461060b5761038e565b806306fdde0314610393578063095ea7b314610410578063147936ba14610450575b600080fd5b61039b61115d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61043c6004803603604081101561042657600080fd5b506001600160a01b0381351690602001356111eb565b604080519115158252519081900360200190f35b6105a3600480360360e081101561046657600080fd5b810190602081018135600160201b81111561048057600080fd5b82018360208201111561049257600080fd5b803590602001918460018302840111600160201b831117156104b357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561050557600080fd5b82018360208201111561051757600080fd5b803590602001918460018302840111600160201b8311171561053857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff1692505060208101356001600160a01b039081169160408101358216916060820135811691608001351661124f565b005b6105a3600480360360208110156105bb57600080fd5b50356001600160a01b03166114a1565b6105d361153c565b60408051918252519081900360200190f35b6105a3600480360360208110156105fb57600080fd5b50356001600160a01b0316611542565b61043c6004803603606081101561062157600080fd5b506001600160a01b038135811691602081013590911690604001356115cb565b6105a36004803603602081101561065757600080fd5b50356001600160a01b03166117d0565b6105d36118c3565b6106776118e7565b6040805160ff9092168252519081900360200190f35b6106956118f0565b604080516001600160a01b039092168252519081900360200190f35b610695611904565b61043c600480360360408110156106cf57600080fd5b506001600160a01b038135169060200135611913565b6105a361196e565b61043c6004803603604081101561070357600080fd5b506001600160a01b0381351690602001356119f3565b6105a36004803603602081101561072f57600080fd5b5035611d3c565b6105a36004803603602081101561074c57600080fd5b810190602081018135600160201b81111561076657600080fd5b82018360208201111561077857600080fd5b803590602001918460208302840111600160201b8311171561079957600080fd5b509092509050611f47565b6105a361201d565b6105a3600480360360208110156107c257600080fd5b50356001600160a01b0316612070565b6105a3600480360360a08110156107e857600080fd5b506001600160a01b038135169060208101359060ff60408201351690606081013590608001356121e2565b61043c612243565b6105a3612253565b6105a36004803603602081101561083957600080fd5b810190602081018135600160201b81111561085357600080fd5b82018360208201111561086557600080fd5b803590602001918460208302840111600160201b8311171561088657600080fd5b5090925090506122b9565b6105d3600480360360208110156108a757600080fd5b50356001600160a01b031661238a565b6105d3600480360360208110156108cd57600080fd5b50356001600160a01b031661239b565b6105d36123b6565b6105a3600480360360208110156108fb57600080fd5b50356001600160a01b03166123da565b6105a361259a565b6105a3600480360360e081101561092957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359160808201359160a08101359181019060e0810160c0820135600160201b81111561097457600080fd5b82018360208201111561098657600080fd5b803590602001918460018302840111600160201b831117156109a757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612625945050505050565b6105d3600480360360208110156109fe57600080fd5b50356001600160a01b0316612718565b610695612733565b61039b612742565b61069561279d565b6105a3600480360360a0811015610a3c57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610a7b57600080fd5b820183602082011115610a8d57600080fd5b803590602001918460018302840111600160201b83111715610aae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506127ac945050505050565b6105d3612806565b6105a360048036036040811015610b0d57600080fd5b506001600160a01b03813516906020013561282a565b6105a360048036036020811015610b3957600080fd5b810190602081018135600160201b811115610b5357600080fd5b820183602082011115610b6557600080fd5b803590602001918460208302840111600160201b83111715610b8657600080fd5b509092509050612a01565b61043c60048036036040811015610ba757600080fd5b506001600160a01b038135169060200135612a81565b61043c60048036036040811015610bd357600080fd5b506001600160a01b038135169060200135612adc565b6105a360048036036020811015610bff57600080fd5b50356001600160a01b0316612bce565b61043c60048036036020811015610c2557600080fd5b50356001600160a01b0316612d4c565b6105a360048036036020811015610c4b57600080fd5b50356001600160a01b0316612d6a565b6105a360048036036060811015610c7157600080fd5b506001600160a01b03813581169160208101359091169060400135612e63565b6105a360048036036060811015610ca757600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115610cd657600080fd5b820183602082011115610ce857600080fd5b803590602001918460018302840111600160201b83111715610d0957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612ec0945050505050565b610695612f18565b6105a360048036036040811015610d6857600080fd5b506001600160a01b038135169060200135612f27565b6105a360048036036060811015610d9457600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115610dc357600080fd5b820183602082011115610dd557600080fd5b803590602001918460018302840111600160201b83111715610df657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061304d945050505050565b6105a3600480360360e0811015610e4d57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359160808201359160a08101359181019060e0810160c0820135600160201b811115610e9857600080fd5b820183602082011115610eaa57600080fd5b803590602001918460018302840111600160201b83111715610ecb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061309a945050505050565b6105a3600480360360e0811015610f2257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135613182565b6105d36131e7565b6105a360048036036020811015610f7b57600080fd5b810190602081018135600160201b811115610f9557600080fd5b820183602082011115610fa757600080fd5b803590602001918460208302840111600160201b83111715610fc857600080fd5b50909250905061320b565b6105d360048036036040811015610fe957600080fd5b506001600160a01b038135811691602001351661339e565b6105a3600480360361012081101561101857600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356133c9565b61043c6004803603604081101561107657600080fd5b506001600160a01b0381351690602001356134c0565b6105a360048036036101208110156110a357600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356134eb565b6105a36004803603602081101561110157600080fd5b50356001600160a01b03166135d5565b6105a36004803603602081101561112757600080fd5b50356001600160a01b0316613755565b61043c6004803603602081101561114d57600080fd5b50356001600160a01b03166137de565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156111e35780601f106111b8576101008083540402835291602001916111e3565b820191906000526020600020905b8154815290600101906020018083116111c657829003601f168201915b505050505081565b600154600090600160a01b900460ff161561123b576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b6112463384846137e9565b50600192915050565b600654600160a81b900460ff16156112a5576040805162461bcd60e51b8152602060048201526014602482015273616c726561647920696e697469616c697a65642160601b604482015290519081900360640190fd5b6001600160a01b038416611300576040805162461bcd60e51b815260206004820152601a60248201527f6d6173746572206d696e7465722063616e277420626520307830000000000000604482015290519081900360640190fd5b6001600160a01b038316611351576040805162461bcd60e51b815260206004820152601360248201527207061757365722063616e27742062652030783606c1b604482015290519081900360640190fd5b6001600160a01b0382166113ac576040805162461bcd60e51b815260206004820152601860248201527f626c61636b6c69737465722063616e2774206265203078300000000000000000604482015290519081900360640190fd5b6001600160a01b0381166113fc576040805162461bcd60e51b815260206004820152601260248201527106f776e65722063616e2774206265203078360741b604482015290519081900360640190fd5b865161140f9060049060208a0190614a52565b508551611423906005906020890190614a52565b506006805460ff191660ff871617610100600160a81b0319166101006001600160a01b038781169190910291909117909155600180546001600160a01b03199081168684161790915560028054909116918416919091179055611485816138d5565b50506006805460ff60a81b1916600160a81b1790555050505050565b6114a9612733565b6001600160a01b0316336001600160a01b031614611505576040805162461bcd60e51b815260206004820152601460248201527337b7363ca7bbb732b91d103737ba1037bbb732b960611b604482015290519081900360640190fd5b60405162461bcd60e51b8152600401808060200182810382526023815260200180614e356023913960400191505060405180910390fd5b60095490565b6002546001600160a01b0316331461158b5760405162461bcd60e51b815260040180806020018281038252602c815260200180614c28602c913960400191505060405180910390fd5b611594816138f7565b6040516001600160a01b038216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b600154600090600160a01b900460ff161561161b576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b8261162581613902565b156116615760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b3361166b81613902565b156116a75760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b856116b181613902565b156116ed5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b6001600160a01b0387166000908152600860209081526040808320338452909152902054851115611765576040805162461bcd60e51b815260206004820152601a60248201527f746f6b656e20616c6c6f77616e636520697320746f6f206c6f77000000000000604482015290519081900360640190fd5b611770878787613923565b6001600160a01b038716600090815260086020908152604080832033845290915290205461179e9086613a54565b6001600160a01b0388166000908152600860209081526040808320338452909152902055600193505050509392505050565b6117d8612733565b6001600160a01b0316336001600160a01b031614611834576040805162461bcd60e51b815260206004820152601460248201527337b7363ca7bbb732b91d103737ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b0381166118795760405162461bcd60e51b815260040180806020018281038252602a815260200180614bb3602a913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0383169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60065461010090046001600160a01b031681565b600c546001600160a01b031690565b600154600090600160a01b900460ff1615611963576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b611246338484613ab1565b6001546001600160a01b031633146119bb576040805162461bcd60e51b815260206004820152600b60248201526a706175736572206f6e6c7960a81b604482015290519081900360640190fd5b6001805460ff60a01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600154600090600160a01b900460ff1615611a43576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515600114611a9b576040805162461bcd60e51b815260206004820152600c60248201526b6d696e74657273206f6e6c7960a01b604482015290519081900360640190fd5b33611aa581613902565b15611ae15760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b83611aeb81613902565b15611b275760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b6001600160a01b038516611b76576040805162461bcd60e51b8152602060048201526011602482015270063616e2774206d696e7420746f2030783607c1b604482015290519081900360640190fd5b60008411611bcb576040805162461bcd60e51b815260206004820152601c60248201527f616d6f756e7420746f206d696e742068617320746f206265203e203000000000604482015290519081900360640190fd5b6000611bd633612718565b905080851115611c2d576040805162461bcd60e51b815260206004820152601860248201527f6d696e74657220616c6c6f77616e636520746f6f206c6f770000000000000000604482015290519081900360640190fd5b600954611c3a9086613aee565b600955611c5986611c5487611c4e83613b4f565b90613aee565b613b73565b611c638186613a54565b336000818152600b6020526040902091909155611c7f90612718565b611cc157336000818152600a6020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a25b6040805186815290516001600160a01b0388169133917fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f89181900360200190a36040805186815290516001600160a01b03881691600091600080516020614d428339815191529181900360200190a350600195945050505050565b600154600160a01b900460ff1615611d89576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515600114611de1576040805162461bcd60e51b815260206004820152600c60248201526b6d696e74657273206f6e6c7960a01b604482015290519081900360640190fd5b33611deb81613902565b15611e275760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b6000611e3233613b4f565b905060008311611e89576040805162461bcd60e51b815260206004820152601960248201527f6275726e20616d6f756e742068617320746f206265203e203000000000000000604482015290519081900360640190fd5b82811015611ec85760405162461bcd60e51b8152600401808060200182810382526025815260200180614c7e6025913960400191505060405180910390fd5b600954611ed59084613a54565b600955611ee633611c548386613a54565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805184815290516000913391600080516020614d428339815191529181900360200190a3505050565b6002546001600160a01b03163314611f905760405162461bcd60e51b815260040180806020018281038252602c815260200180614c28602c913960400191505060405180910390fd5b60005b8181101561201857611fbf838383818110611faa57fe5b905060200201356001600160a01b0316613c1a565b828282818110611fcb57fe5b905060200201356001600160a01b03166001600160a01b03167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a2600101611f93565b505050565b600f5460ff1660021461202f57600080fd5b600f805460ff19166003179081905560405160ff91909116907f9acd1ebb88c57afda916c7e76863b6692f70997e0a4ddd876f04abe3bdaae36890600090a2565b612078612733565b6001600160a01b0316336001600160a01b0316146120d4576040805162461bcd60e51b815260206004820152601460248201527337b7363ca7bbb732b91d103737ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b03811661212f576040805162461bcd60e51b815260206004820152601960248201527f7570646174655061757365723a2030783020696e76616c696400000000000000604482015290519081900360640190fd5b6001546001600160a01b0382811691161415612192576040805162461bcd60e51b815260206004820152601a60248201527f7570646174655061757365723a2073616d652061646472657373000000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b600154600160a01b900460ff161561222f576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b61223c8585858585613c25565b5050505050565b600154600160a01b900460ff1681565b600654600160a81b900460ff16801561226f5750600f5460ff16155b61227857600080fd5b600f805460ff19166001179081905560405160ff91909116907f9acd1ebb88c57afda916c7e76863b6692f70997e0a4ddd876f04abe3bdaae36890600090a2565b6002546001600160a01b031633146123025760405162461bcd60e51b815260040180806020018281038252602c815260200180614c28602c913960400191505060405180910390fd5b60005b818110156120185761233183838381811061231c57fe5b905060200201356001600160a01b03166138f7565b82828281811061233d57fe5b905060200201356001600160a01b03166001600160a01b03167f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e60405160405180910390a2600101612305565b600061239582613b4f565b92915050565b6001600160a01b03166000908152600e602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b600154600160a01b900460ff1615612427576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b6002546001600160a01b031633146124705760405162461bcd60e51b815260040180806020018281038252602c815260200180614c28602c913960400191505060405180910390fd5b61247981613902565b6124b45760405162461bcd60e51b8152600401808060200182810382526030815260200180614ca36030913960400191505060405180910390fd5b60006124bf82613b4f565b6009549091506124cf9082613a54565b6009556001600160a01b0382166000818152600760209081526040918290208054600160ff1b811691829055835186815293519094919391927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5928290030190a26040805184815290516000916001600160a01b03871691600080516020614d428339815191529181900360200190a360095460408051918252517fc8b17f75f53401f272e9ee7fa431e81ba33779363238896180425a422420c8f79181900360200190a150505050565b6001546001600160a01b031633146125e7576040805162461bcd60e51b815260206004820152600b60248201526a706175736572206f6e6c7960a81b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600154600160a01b900460ff1615612672576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b8661267c81613902565b156126b85760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b866126c281613902565b156126fe5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b61270d89898989898989613c65565b505050505050505050565b6001600160a01b03166000908152600b602052604090205490565b6000546001600160a01b031690565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156111e35780601f106111b8576101008083540402835291602001916111e3565b6001546001600160a01b031681565b600154600160a01b900460ff16156127f9576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b61223c8585858585613d52565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60065461010090046001600160a01b03163314612883576040805162461bcd60e51b81526020600482015260126024820152716d6173746572206d696e746572206f6e6c7960701b604482015290519081900360640190fd5b6001600160a01b0382166128d4576040805162461bcd60e51b815260206004820152601360248201527206d696e7465722063616e27742062652030783606c1b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a602052604090205460ff16612930576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b4b73a32b960a11b604482015290519081900360640190fd5b60006129458261293f85612718565b90613a54565b6001600160a01b0384166000908152600b6020526040812082905590915061296c84612718565b11156129b6576040805182815290516001600160a01b038516917f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d20919081900360200190a2612018565b6001600160a01b0383166000818152600a6020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2505050565b6002546001600160a01b03163314612a4a5760405162461bcd60e51b815260040180806020018281038252602c815260200180614c28602c913960400191505060405180910390fd5b60005b8181101561201857612a79838383818110612a6457fe5b905060200201356001600160a01b03166123da565b600101612a4d565b600154600090600160a01b900460ff1615612ad1576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b61124633848461400f565b600154600090600160a01b900460ff1615612b2c576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b33612b3681613902565b15612b725760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b83612b7c81613902565b15612bb85760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b612bc3338686613923565b506001949350505050565b612bd6612733565b6001600160a01b0316336001600160a01b031614612c32576040805162461bcd60e51b815260206004820152601460248201527337b7363ca7bbb732b91d103737ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b038116612c8d576040805162461bcd60e51b815260206004820152601a60248201527f6d6173746572206d696e7465722063616e277420626520307830000000000000604482015290519081900360640190fd5b6006546001600160a01b03828116610100909204161415612cf5576040805162461bcd60e51b815260206004820152601960248201527f6d6173746572206d696e746572206973207468652073616d6500000000000000604482015290519081900360640190fd5b60068054610100600160a81b0319166101006001600160a01b0384811682029290921792839055604051920416907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b6001600160a01b03166000908152600a602052604090205460ff1690565b612d72612733565b6001600160a01b0316336001600160a01b031614612dce576040805162461bcd60e51b815260206004820152601460248201527337b7363ca7bbb732b91d103737ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b038116612e135760405162461bcd60e51b8152600401808060200182810382526032815260200180614e036032913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600c546001600160a01b03163314612eac5760405162461bcd60e51b8152600401808060200182810382526024815260200180614cf96024913960400191505060405180910390fd5b6120186001600160a01b038416838361405e565b600154600160a01b900460ff1615612f0d576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b6120188383836140b0565b6002546001600160a01b031681565b60065461010090046001600160a01b03163314612f80576040805162461bcd60e51b81526020600482015260126024820152716d6173746572206d696e746572206f6e6c7960701b604482015290519081900360640190fd5b6001600160a01b038216612fd1576040805162461bcd60e51b815260206004820152601360248201527206d696e7465722063616e27742062652030783606c1b604482015290519081900360640190fd5b6000612fe082611c4e85612718565b6001600160a01b0384166000818152600b60209081526040808320859055600a825291829020805460ff191660011790558151848152915193945091927f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d20929181900390910190a2505050565b6040805162461bcd60e51b815260206004820152601d60248201527f72656a6563742045495032323320746f6b656e207472616e7366657273000000604482015290519081900360640190fd5b600154600160a01b900460ff16156130e7576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b866130f181613902565b1561312d5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b8661313781613902565b156131735760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b61270d89898989898989614182565b600154600160a01b900460ff16156131cf576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b6131de87878787878787614213565b50505050505050565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b600f5460ff1660011461321d57600080fd5b60005b8181101561333b576003600084848481811061323857fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166132995760405162461bcd60e51b815260040180806020018281038252603d815260200180614ae6603d913960400191505060405180910390fd5b6132a8838383818110611faa57fe5b600360008484848181106132b857fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff191690558282828181106132ee57fe5b905060200201356001600160a01b03166001600160a01b03167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a2600101613220565b5061334530613c1a565b30600090815260036020526040808220805460ff19908116909155600f805490911660021790819055905160ff91909116917f9acd1ebb88c57afda916c7e76863b6692f70997e0a4ddd876f04abe3bdaae36891a25050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b600154600160a01b900460ff1615613416576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b8861342081613902565b1561345c5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b8861346681613902565b156134a25760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b6134b38b8b8b8b8b8b8b8b8b614255565b5050505050505050505050565b6001600160a01b03919091166000908152600d60209081526040808320938352929052205460ff1690565b600154600160a01b900460ff1615613538576040805162461bcd60e51b815260206004820152601e6024820152600080516020614b46833981519152604482015290519081900360640190fd5b8861354281613902565b1561357e5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b8861358881613902565b156135c45760405162461bcd60e51b8152600401808060200182810382526025815260200180614e586025913960400191505060405180910390fd5b6134b38b8b8b8b8b8b8b8b8b614299565b6135dd612733565b6001600160a01b0316336001600160a01b031614613639576040805162461bcd60e51b815260206004820152601460248201527337b7363ca7bbb732b91d103737ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b038116613694576040805162461bcd60e51b815260206004820152601e60248201527f7472616e736665724f776e6572736869703a2030783020696e76616c69640000604482015290519081900360640190fd5b61369c612733565b6001600160a01b0316816001600160a01b03161415613702576040805162461bcd60e51b815260206004820152601f60248201527f7472616e736665724f776e6572736869703a2073616d65206164647265737300604482015290519081900360640190fd5b806001600160a01b0316613714612733565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3613752816138d5565b50565b6002546001600160a01b0316331461379e5760405162461bcd60e51b815260040180806020018281038252602c815260200180614c28602c913960400191505060405180910390fd5b6137a781613c1a565b6040516001600160a01b038216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b600061239582613902565b6001600160a01b03831661382e5760405162461bcd60e51b8152600401808060200182810382526024815260200180614d876024913960400191505060405180910390fd5b6001600160a01b0382166138735760405162461bcd60e51b8152600401808060200182810382526022815260200180614b916022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6137528160006142dd565b6001600160a01b031660009081526007602052604090205460ff1c60011490565b6001600160a01b0383166139685760405162461bcd60e51b8152600401808060200182810382526025815260200180614d626025913960400191505060405180910390fd5b6001600160a01b0382166139ad5760405162461bcd60e51b8152600401808060200182810382526023815260200180614b236023913960400191505060405180910390fd5b6139b683613b4f565b8111156139f45760405162461bcd60e51b8152600401808060200182810382526026815260200180614c026026913960400191505060405180910390fd5b613a0583611c548361293f87613b4f565b613a1682611c5483611c4e86613b4f565b816001600160a01b0316836001600160a01b0316600080516020614d42833981519152836040518082815260200191505060405180910390a3505050565b600082821115613aab576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038084166000908152600860209081526040808320938616835292905220546120189084908490613ae99085613aee565b6137e9565b600082820183811015613b48576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03166000908152600760205260409020546001600160ff1b031690565b6001600160ff1b03811115613bb95760405162461bcd60e51b815260040180806020018281038252602a815260200180614c54602a913960400191505060405180910390fd5b613bc282613902565b15613bfe5760405162461bcd60e51b8152600401808060200182810382526025815260200180614bdd6025913960400191505060405180910390fd5b6001600160a01b03909116600090815260076020526040902055565b6137528160016142dd565b61223c8585848487604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526140b0565b6001600160a01b0386163314613cac5760405162461bcd60e51b8152600401808060200182810382526025815260200180614d1d6025913960400191505060405180910390fd5b613cb887838686614330565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de86020808301919091526001600160a01b03808b1683850152891660608301526080820188905260a0820187905260c0820186905260e0808301869052835180840390910181526101009092019092528051910120613d3d908890836143bc565b613d478783614513565b6131de878787613923565b600019821480613d625750428210155b613db3576040805162461bcd60e51b815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b6000613e46613dc061456d565b6001600160a01b038089166000818152600e60209081526040918290205482517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e09092019052805191012061462d565b905073200898584f14c4213787556d40693c163cc677af636ccea6528783856040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613ec6578181015183820152602001613eae565b50505050905090810190601f168015613ef35780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015613f1257600080fd5b505af4158015613f26573d6000803e3d6000fd5b505050506040513d6020811015613f3c57600080fd5b5051613f8f576040805162461bcd60e51b815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b613f9a8686866137e9565b6001600160a01b0386166000818152600e602090815260409182902054825190815291517f1866e09d34a3ce76138ae60f66355320cd8ef57ea6cc16c33306c32aa3f140e79281900390910190a25050506001600160a01b039092166000908152600e60205260409020805460010190555050565b6120188383613ae984604051806060016040528060258152602001614ea2602591396001600160a01b03808a166000908152600860209081526040808320938c1683529290522054919061464c565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526120189084906146e3565b6140ba8383614794565b614127837f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960001b858560405160200180848152602001836001600160a01b03168152602001828152602001935050505060405160208183030381529060405280519060200120836143bc565b6001600160a01b0383166000818152600d60209081526040808320868452909152808220805460ff19166001179055518492917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050565b61418e87838686614330565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a22676020808301919091526001600160a01b03808b1683850152891660608301526080820188905260a0820187905260c0820186905260e0808301869052835180840390910181526101009092019092528051910120613d3d908890836143bc565b6131de87878787868689604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052613d52565b61270d89898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614182565b61270d89898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052613c65565b806142f0576142eb82613b4f565b614310565b6001600160a01b038216600090815260076020526040902054600160ff1b175b6001600160a01b0390921660009081526007602052604090209190915550565b81421161436e5760405162461bcd60e51b815260040180806020018281038252602b815260200180614b66602b913960400191505060405180910390fd5b8042106143ac5760405162461bcd60e51b8152600401808060200182810382526025815260200180614e7d6025913960400191505060405180910390fd5b6143b68484614794565b50505050565b73200898584f14c4213787556d40693c163cc677af636ccea652846143e86143e261456d565b8661462d565b846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561444a578181015183820152602001614432565b50505050905090810190601f1680156144775780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561449657600080fd5b505af41580156144aa573d6000803e3d6000fd5b505050506040513d60208110156144c057600080fd5b5051612018576040805162461bcd60e51b815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60209081526040808320858452909152808220805460ff19166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815260009361462893919290918301828280156145fc5780601f106145d1576101008083540402835291602001916145fc565b820191906000526020600020905b8154815290600101906020018083116145df57829003601f168201915b5050505050604051806040016040528060018152602001601960f91b8152506146236147fb565b6147ff565b905090565b60405161190160f01b8152600281019290925260228201526042902090565b600081848411156146db5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146a0578181015183820152602001614688565b50505050905090810190601f1680156146cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6060614738826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166148739092919063ffffffff16565b8051909150156120185780806020019051602081101561475757600080fd5b50516120185760405162461bcd60e51b815260040180806020018281038252602a815260200180614dab602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600d6020908152604080832084845290915290205460ff16156147f75760405162461bcd60e51b815260040180806020018281038252602e815260200180614dd5602e913960400191505060405180910390fd5b5050565b4690565b8251602093840120825192840192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8187015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c09092019052805191012090565b6060614882848460008561488a565b949350505050565b6060824710156148cb5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cd36026913960400191505060405180910390fd5b6148d4856149e6565b614925576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106149645780518252601f199092019160209182019101614945565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146149c6576040519150601f19603f3d011682016040523d82523d6000602084013e6149cb565b606091505b50915091506149db8282866149ec565b979650505050505050565b3b151590565b606083156149fb575081613b48565b825115614a0b5782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156146a0578181015183820152602001614688565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614a9357805160ff1916838001178555614ac0565b82800160010185558215614ac0579182015b82811115614ac0578251825591602001919060010190614aa5565b50614acc929150614ad0565b5090565b5b80821115614acc5760008155600101614ad156fe46696174546f6b656e56325f313a20426c61636b6c697374696e672070726576696f75736c7920756e626c61636b6c6973746564206163636f756e742145524332303a207472616e7366657220746f20746865207a65726f20616464726573737768656e4e6f745061757365643a20636f6e747261637420706175736564000046696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696445524332303a20617070726f766520746f20746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e56325f323a204163636f756e7420697320626c61636b6c697374656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e56325f323a2042616c616e636520657863656564732028325e323535202d20312962616c616e636520696e206d696e746572206973203c20616d6f756e7420746f206275726e43616e277420776970652062616c616e636573206f662061206e6f6e20626c61636b6c69737465642061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657246696174546f6b656e56323a2063616c6c6572206d75737420626520746865207061796565ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346756e6374696f6e207265636c61696d546f6b656e2069732064657072656361746564426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220938929f092195fdcddfbd30ad7f087d4cbe6f1ef4a6f5ad693ec2fdfd1ea5c3c64736f6c634300060c0033