@pendle/core-v2 4.5.1 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDESY.sol/PendleSUSDESY.dbg.json +1 -1
  2. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDESY.sol/PendleSUSDESY.json +2 -2
  3. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.dbg.json +4 -0
  4. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.json +1070 -0
  5. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.dbg.json +4 -0
  6. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.json +1144 -0
  7. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.dbg.json +4 -0
  8. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.json +1111 -0
  9. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol/PendleKarakVaultSYBaseUpg.dbg.json +4 -0
  10. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol/PendleKarakVaultSYBaseUpg.json +1036 -0
  11. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.dbg.json +4 -0
  12. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.json +1096 -0
  13. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.dbg.json +4 -0
  14. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.json +1116 -0
  15. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20WithSupplyCapSY.sol/PendleERC20WithSupplyCapSY.dbg.json +1 -1
  16. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.dbg.json +1 -1
  17. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.json +2 -2
  18. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.json +2 -2
  20. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  22. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  24. package/build/artifacts/contracts/core/StandardizedYield/implementations/PirexETH/PendleApxETHSY.sol/PendleApxETHSY.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/StandardizedYield/implementations/PirexETH/PendleApxETHSY.sol/PendleApxETHSY.json +2 -2
  26. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.json +2 -2
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.json +2 -2
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellRswETHStakingSY.sol/PendleSwellRswETHStakingSY.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellRswETHStakingSY.sol/PendleSwellRswETHStakingSY.json +2 -2
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellStakingERC20SY.sol/PendleSwellStakingERC20SY.dbg.json +1 -1
  33. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  34. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.json +19 -0
  35. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  36. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +1200 -34
  37. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  38. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +1228 -62
  39. package/build/artifacts/contracts/interfaces/IPGovernanceProxy.sol/IPGovernanceProxy.dbg.json +4 -0
  40. package/build/artifacts/contracts/interfaces/IPGovernanceProxy.sol/IPGovernanceProxy.json +60 -0
  41. package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.dbg.json +4 -0
  42. package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.json +25 -0
  43. package/build/artifacts/contracts/interfaces/IPPtLpOracle.sol/IPPtLpOracle.dbg.json +1 -1
  44. package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.dbg.json +4 -0
  45. package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.json +30 -0
  46. package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.dbg.json +4 -0
  47. package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.json +37 -0
  48. package/build/artifacts/contracts/interfaces/Karak/IKarakVault.sol/IKarakVault.dbg.json +4 -0
  49. package/build/artifacts/contracts/interfaces/Karak/IKarakVault.sol/IKarakVault.json +24 -0
  50. package/build/artifacts/contracts/interfaces/Karak/IKarakVaultSupervisor.sol/IKarakVaultSupervisor.dbg.json +4 -0
  51. package/build/artifacts/contracts/interfaces/Karak/IKarakVaultSupervisor.sol/IKarakVaultSupervisor.json +76 -0
  52. package/build/artifacts/contracts/interfaces/Swell/ISwellSimpleStakingERC20.sol/ISwellSimpleStakingERC20.dbg.json +1 -1
  53. package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +4 -0
  54. package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.json +401 -0
  55. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  56. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +25 -2
  57. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.dbg.json +4 -0
  58. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.json +63 -0
  59. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.dbg.json +4 -0
  60. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.json +35 -0
  61. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  62. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  63. package/build/artifacts/contracts/oracles/PendlePtLpOracle.sol/PendlePtLpOracle.dbg.json +1 -1
  64. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  65. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
  66. package/build/artifacts/contracts/oracles/samples/BoringPtUsdChainlinkOracle.sol/BoringPtUsdChainlinkOracle.dbg.json +1 -1
  67. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  68. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  69. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  70. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +1202 -36
  71. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  72. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  73. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  74. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  75. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +4 -0
  76. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +34 -0
  77. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  78. package/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol +32 -0
  79. package/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol +80 -0
  80. package/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol +73 -0
  81. package/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol +141 -0
  82. package/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol +18 -0
  83. package/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol +71 -0
  84. package/contracts/core/StandardizedYield/implementations/Swell/PendleSwellRswETHStakingSY.sol +0 -1
  85. package/contracts/interfaces/IERC4626.sol +2 -0
  86. package/contracts/interfaces/IPActionMiscV3.sol +99 -0
  87. package/contracts/interfaces/IPGovernanceProxy.sol +14 -0
  88. package/contracts/interfaces/IPPausingInterface.sol +8 -0
  89. package/contracts/interfaces/IPReflector.sol +6 -0
  90. package/contracts/interfaces/IPTokenWithSupplyCap.sol +9 -0
  91. package/contracts/interfaces/Karak/IKarakVault.sol +6 -0
  92. package/contracts/interfaces/Karak/IKarakVaultSupervisor.sol +8 -0
  93. package/contracts/offchain-helpers/PendleGovernanceProxy.sol +84 -0
  94. package/contracts/offchain-helpers/PendlePoolDeployHelper.sol +5 -0
  95. package/contracts/offchain-helpers/SupplyCapReader.sol +25 -0
  96. package/contracts/router/ActionMiscV3.sol +182 -34
  97. package/contracts/router/ActionSwapYTV3.sol +0 -85
  98. package/contracts/router/Reflector.sol +70 -0
  99. package/contracts/router/base/ActionBase.sol +90 -1
  100. package/deployments/1-core.json +10 -1
  101. package/deployments/1-markets/KARAK-SUSDE-MAINNET-SEP2024.json +14 -0
  102. package/deployments/1-markets/KARAK-USDE-MAINNET-SEP2024.json +14 -0
  103. package/deployments/1-markets/KARAK-WEETH-MAINNET-SEP2024.json +14 -0
  104. package/deployments/1-markets/PUFETH-MAINNET-SEP2024.json +11 -0
  105. package/deployments/1-markets/RSETH-MAINNET-SEP2024.json +11 -0
  106. package/deployments/1-markets/SUSDE-MAINNET-SEP2024.json +13 -0
  107. package/deployments/1-markets/UNIETH-MAINNET-SEP2024.json +13 -0
  108. package/deployments/1-offchain-helper.json +2 -1
  109. package/deployments/10-core.json +10 -1
  110. package/deployments/10-offchain-helper.json +2 -1
  111. package/deployments/42161-core.json +10 -1
  112. package/deployments/42161-markets/RSETH-ARBITRUM-SEP2024-NEW.json +11 -0
  113. package/deployments/42161-markets/RSETH-ARBITRUM-SEP2024.json +11 -0
  114. package/deployments/42161-offchain-helper.json +2 -1
  115. package/deployments/5000-core.json +10 -1
  116. package/deployments/5000-offchain-helper.json +2 -1
  117. package/deployments/56-core.json +10 -1
  118. package/deployments/56-offchain-helper.json +2 -1
  119. package/package.json +1 -1
  120. package/typechain-types/ActionMiscV3.ts +628 -16
  121. package/typechain-types/BoringPYUsdChainlinkAssetOracle.ts +244 -0
  122. package/typechain-types/BoringPYUsdChainlinkSYOracle.ts +243 -0
  123. package/typechain-types/IERC4626.ts +34 -0
  124. package/typechain-types/IKarakVault.ts +84 -0
  125. package/typechain-types/IKarakVaultSupervisor.ts +190 -0
  126. package/typechain-types/IPActionMiscV3.ts +628 -16
  127. package/typechain-types/IPAllActionV3.ts +535 -0
  128. package/typechain-types/IPGovernanceProxy.ts +142 -0
  129. package/typechain-types/IPPYLpOracle.ts +379 -0
  130. package/typechain-types/IPPausingInterface.ts +112 -0
  131. package/typechain-types/IPReflector.ts +95 -0
  132. package/typechain-types/IPTokenWithSupplyCap.ts +110 -0
  133. package/typechain-types/IPossibleSupplyCapInterface.ts +142 -0
  134. package/typechain-types/PendleGovernanceProxy.ts +603 -0
  135. package/typechain-types/PendleKarakVaultERC20SY.ts +1324 -0
  136. package/typechain-types/PendleKarakVaultEzETHSY.ts +1400 -0
  137. package/typechain-types/PendleKarakVaultSUSDESY.ts +1380 -0
  138. package/typechain-types/PendleKarakVaultSYBaseUpg.ts +1312 -0
  139. package/typechain-types/PendleKarakVaultUSDESY.ts +1366 -0
  140. package/typechain-types/PendleKarakVaultWEETHSY.ts +1370 -0
  141. package/typechain-types/PendlePYLpOracle.ts +612 -0
  142. package/typechain-types/PendlePoolDeployHelper.ts +44 -0
  143. package/typechain-types/Reflector.ts +95 -0
  144. package/typechain-types/SupplyCapReader.ts +105 -0
  145. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  146. package/typechain-types/factories/ActionMiscV3__factory.ts +1201 -35
  147. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  148. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  149. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +269 -0
  150. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +267 -0
  151. package/typechain-types/factories/IERC4626__factory.ts +19 -0
  152. package/typechain-types/factories/IKarakVaultSupervisor__factory.ts +95 -0
  153. package/typechain-types/factories/IKarakVault__factory.ts +36 -0
  154. package/typechain-types/factories/IPActionMiscV3__factory.ts +1200 -34
  155. package/typechain-types/factories/IPAllActionV3__factory.ts +1228 -62
  156. package/typechain-types/factories/IPGovernanceProxy__factory.ts +75 -0
  157. package/typechain-types/factories/IPPYLpOracle__factory.ts +214 -0
  158. package/typechain-types/factories/IPPausingInterface__factory.ts +40 -0
  159. package/typechain-types/factories/IPReflector__factory.ts +42 -0
  160. package/typechain-types/factories/IPTokenWithSupplyCap__factory.ts +56 -0
  161. package/typechain-types/factories/IPossibleSupplyCapInterface__factory.ts +82 -0
  162. package/typechain-types/factories/PendleApxETHSY__factory.ts +1 -1
  163. package/typechain-types/factories/PendleERC4626SYUpg__factory.ts +1 -1
  164. package/typechain-types/factories/PendleERC4626SY__factory.ts +1 -1
  165. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  166. package/typechain-types/factories/PendleGovernanceProxy__factory.ts +458 -0
  167. package/typechain-types/factories/PendleKarakVaultERC20SY__factory.ts +1139 -0
  168. package/typechain-types/factories/PendleKarakVaultEzETHSY__factory.ts +1236 -0
  169. package/typechain-types/factories/PendleKarakVaultSUSDESY__factory.ts +1180 -0
  170. package/typechain-types/factories/PendleKarakVaultSYBaseUpg__factory.ts +1055 -0
  171. package/typechain-types/factories/PendleKarakVaultUSDESY__factory.ts +1165 -0
  172. package/typechain-types/factories/PendleKarakVaultWEETHSY__factory.ts +1189 -0
  173. package/typechain-types/factories/PendlePYLpOracle__factory.ts +487 -0
  174. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +24 -1
  175. package/typechain-types/factories/PendlePufStETHSY__factory.ts +1 -1
  176. package/typechain-types/factories/PendlePufWETHSY__factory.ts +1 -1
  177. package/typechain-types/factories/PendleSUSDESY__factory.ts +1 -1
  178. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  179. package/typechain-types/factories/PendleSwellRswETHStakingSY__factory.ts +1 -1
  180. package/typechain-types/factories/Reflector__factory.ts +84 -0
  181. package/typechain-types/factories/SupplyCapReader__factory.ts +88 -0
  182. package/typechain-types/hardhat.d.ts +144 -0
  183. package/typechain-types/index.ts +32 -0
@@ -0,0 +1,1070 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleKarakVaultERC20SY",
4
+ "sourceName": "contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_vault",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_vaultSupervisor",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "assetLimit",
27
+ "type": "uint256"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "totalAsset",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "amountAssetToDeposit",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "KarakVaultAssetLimitExceeded",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "uint256",
47
+ "name": "actualSharesOut",
48
+ "type": "uint256"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "requiredSharesOut",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "SYInsufficientSharesOut",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "actualTokenOut",
64
+ "type": "uint256"
65
+ },
66
+ {
67
+ "internalType": "uint256",
68
+ "name": "requiredTokenOut",
69
+ "type": "uint256"
70
+ }
71
+ ],
72
+ "name": "SYInsufficientTokenOut",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "token",
80
+ "type": "address"
81
+ }
82
+ ],
83
+ "name": "SYInvalidTokenIn",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "token",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "SYInvalidTokenOut",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "SYZeroDeposit",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "SYZeroRedeem",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "owner",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": true,
118
+ "internalType": "address",
119
+ "name": "spender",
120
+ "type": "address"
121
+ },
122
+ {
123
+ "indexed": false,
124
+ "internalType": "uint256",
125
+ "name": "value",
126
+ "type": "uint256"
127
+ }
128
+ ],
129
+ "name": "Approval",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "user",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "address[]",
144
+ "name": "rewardTokens",
145
+ "type": "address[]"
146
+ },
147
+ {
148
+ "indexed": false,
149
+ "internalType": "uint256[]",
150
+ "name": "rewardAmounts",
151
+ "type": "uint256[]"
152
+ }
153
+ ],
154
+ "name": "ClaimRewards",
155
+ "type": "event"
156
+ },
157
+ {
158
+ "anonymous": false,
159
+ "inputs": [
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "caller",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": true,
168
+ "internalType": "address",
169
+ "name": "receiver",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": true,
174
+ "internalType": "address",
175
+ "name": "tokenIn",
176
+ "type": "address"
177
+ },
178
+ {
179
+ "indexed": false,
180
+ "internalType": "uint256",
181
+ "name": "amountDeposited",
182
+ "type": "uint256"
183
+ },
184
+ {
185
+ "indexed": false,
186
+ "internalType": "uint256",
187
+ "name": "amountSyOut",
188
+ "type": "uint256"
189
+ }
190
+ ],
191
+ "name": "Deposit",
192
+ "type": "event"
193
+ },
194
+ {
195
+ "anonymous": false,
196
+ "inputs": [],
197
+ "name": "EIP712DomainChanged",
198
+ "type": "event"
199
+ },
200
+ {
201
+ "anonymous": false,
202
+ "inputs": [
203
+ {
204
+ "indexed": false,
205
+ "internalType": "uint8",
206
+ "name": "version",
207
+ "type": "uint8"
208
+ }
209
+ ],
210
+ "name": "Initialized",
211
+ "type": "event"
212
+ },
213
+ {
214
+ "anonymous": false,
215
+ "inputs": [
216
+ {
217
+ "indexed": true,
218
+ "internalType": "address",
219
+ "name": "previousOwner",
220
+ "type": "address"
221
+ },
222
+ {
223
+ "indexed": true,
224
+ "internalType": "address",
225
+ "name": "newOwner",
226
+ "type": "address"
227
+ }
228
+ ],
229
+ "name": "OwnershipTransferred",
230
+ "type": "event"
231
+ },
232
+ {
233
+ "anonymous": false,
234
+ "inputs": [
235
+ {
236
+ "indexed": false,
237
+ "internalType": "address",
238
+ "name": "account",
239
+ "type": "address"
240
+ }
241
+ ],
242
+ "name": "Paused",
243
+ "type": "event"
244
+ },
245
+ {
246
+ "anonymous": false,
247
+ "inputs": [
248
+ {
249
+ "indexed": true,
250
+ "internalType": "address",
251
+ "name": "caller",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "indexed": true,
256
+ "internalType": "address",
257
+ "name": "receiver",
258
+ "type": "address"
259
+ },
260
+ {
261
+ "indexed": true,
262
+ "internalType": "address",
263
+ "name": "tokenOut",
264
+ "type": "address"
265
+ },
266
+ {
267
+ "indexed": false,
268
+ "internalType": "uint256",
269
+ "name": "amountSyToRedeem",
270
+ "type": "uint256"
271
+ },
272
+ {
273
+ "indexed": false,
274
+ "internalType": "uint256",
275
+ "name": "amountTokenOut",
276
+ "type": "uint256"
277
+ }
278
+ ],
279
+ "name": "Redeem",
280
+ "type": "event"
281
+ },
282
+ {
283
+ "anonymous": false,
284
+ "inputs": [
285
+ {
286
+ "indexed": true,
287
+ "internalType": "address",
288
+ "name": "from",
289
+ "type": "address"
290
+ },
291
+ {
292
+ "indexed": true,
293
+ "internalType": "address",
294
+ "name": "to",
295
+ "type": "address"
296
+ },
297
+ {
298
+ "indexed": false,
299
+ "internalType": "uint256",
300
+ "name": "value",
301
+ "type": "uint256"
302
+ }
303
+ ],
304
+ "name": "Transfer",
305
+ "type": "event"
306
+ },
307
+ {
308
+ "anonymous": false,
309
+ "inputs": [
310
+ {
311
+ "indexed": false,
312
+ "internalType": "address",
313
+ "name": "account",
314
+ "type": "address"
315
+ }
316
+ ],
317
+ "name": "Unpaused",
318
+ "type": "event"
319
+ },
320
+ {
321
+ "inputs": [],
322
+ "name": "DOMAIN_SEPARATOR",
323
+ "outputs": [
324
+ {
325
+ "internalType": "bytes32",
326
+ "name": "",
327
+ "type": "bytes32"
328
+ }
329
+ ],
330
+ "stateMutability": "view",
331
+ "type": "function"
332
+ },
333
+ {
334
+ "inputs": [
335
+ {
336
+ "internalType": "address",
337
+ "name": "",
338
+ "type": "address"
339
+ }
340
+ ],
341
+ "name": "accruedRewards",
342
+ "outputs": [
343
+ {
344
+ "internalType": "uint256[]",
345
+ "name": "rewardAmounts",
346
+ "type": "uint256[]"
347
+ }
348
+ ],
349
+ "stateMutability": "view",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [
354
+ {
355
+ "internalType": "address",
356
+ "name": "owner",
357
+ "type": "address"
358
+ },
359
+ {
360
+ "internalType": "address",
361
+ "name": "spender",
362
+ "type": "address"
363
+ }
364
+ ],
365
+ "name": "allowance",
366
+ "outputs": [
367
+ {
368
+ "internalType": "uint256",
369
+ "name": "",
370
+ "type": "uint256"
371
+ }
372
+ ],
373
+ "stateMutability": "view",
374
+ "type": "function"
375
+ },
376
+ {
377
+ "inputs": [
378
+ {
379
+ "internalType": "address",
380
+ "name": "spender",
381
+ "type": "address"
382
+ },
383
+ {
384
+ "internalType": "uint256",
385
+ "name": "amount",
386
+ "type": "uint256"
387
+ }
388
+ ],
389
+ "name": "approve",
390
+ "outputs": [
391
+ {
392
+ "internalType": "bool",
393
+ "name": "",
394
+ "type": "bool"
395
+ }
396
+ ],
397
+ "stateMutability": "nonpayable",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [],
402
+ "name": "assetInfo",
403
+ "outputs": [
404
+ {
405
+ "internalType": "enum IStandardizedYield.AssetType",
406
+ "name": "",
407
+ "type": "uint8"
408
+ },
409
+ {
410
+ "internalType": "address",
411
+ "name": "",
412
+ "type": "address"
413
+ },
414
+ {
415
+ "internalType": "uint8",
416
+ "name": "",
417
+ "type": "uint8"
418
+ }
419
+ ],
420
+ "stateMutability": "view",
421
+ "type": "function"
422
+ },
423
+ {
424
+ "inputs": [
425
+ {
426
+ "internalType": "address",
427
+ "name": "account",
428
+ "type": "address"
429
+ }
430
+ ],
431
+ "name": "balanceOf",
432
+ "outputs": [
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "",
436
+ "type": "uint256"
437
+ }
438
+ ],
439
+ "stateMutability": "view",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [],
444
+ "name": "claimOwnership",
445
+ "outputs": [],
446
+ "stateMutability": "nonpayable",
447
+ "type": "function"
448
+ },
449
+ {
450
+ "inputs": [
451
+ {
452
+ "internalType": "address",
453
+ "name": "",
454
+ "type": "address"
455
+ }
456
+ ],
457
+ "name": "claimRewards",
458
+ "outputs": [
459
+ {
460
+ "internalType": "uint256[]",
461
+ "name": "rewardAmounts",
462
+ "type": "uint256[]"
463
+ }
464
+ ],
465
+ "stateMutability": "nonpayable",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [],
470
+ "name": "decimals",
471
+ "outputs": [
472
+ {
473
+ "internalType": "uint8",
474
+ "name": "",
475
+ "type": "uint8"
476
+ }
477
+ ],
478
+ "stateMutability": "view",
479
+ "type": "function"
480
+ },
481
+ {
482
+ "inputs": [
483
+ {
484
+ "internalType": "address",
485
+ "name": "receiver",
486
+ "type": "address"
487
+ },
488
+ {
489
+ "internalType": "address",
490
+ "name": "tokenIn",
491
+ "type": "address"
492
+ },
493
+ {
494
+ "internalType": "uint256",
495
+ "name": "amountTokenToDeposit",
496
+ "type": "uint256"
497
+ },
498
+ {
499
+ "internalType": "uint256",
500
+ "name": "minSharesOut",
501
+ "type": "uint256"
502
+ }
503
+ ],
504
+ "name": "deposit",
505
+ "outputs": [
506
+ {
507
+ "internalType": "uint256",
508
+ "name": "amountSharesOut",
509
+ "type": "uint256"
510
+ }
511
+ ],
512
+ "stateMutability": "payable",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [],
517
+ "name": "eip712Domain",
518
+ "outputs": [
519
+ {
520
+ "internalType": "bytes1",
521
+ "name": "fields",
522
+ "type": "bytes1"
523
+ },
524
+ {
525
+ "internalType": "string",
526
+ "name": "name",
527
+ "type": "string"
528
+ },
529
+ {
530
+ "internalType": "string",
531
+ "name": "version",
532
+ "type": "string"
533
+ },
534
+ {
535
+ "internalType": "uint256",
536
+ "name": "chainId",
537
+ "type": "uint256"
538
+ },
539
+ {
540
+ "internalType": "address",
541
+ "name": "verifyingContract",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "bytes32",
546
+ "name": "salt",
547
+ "type": "bytes32"
548
+ },
549
+ {
550
+ "internalType": "uint256[]",
551
+ "name": "extensions",
552
+ "type": "uint256[]"
553
+ }
554
+ ],
555
+ "stateMutability": "view",
556
+ "type": "function"
557
+ },
558
+ {
559
+ "inputs": [],
560
+ "name": "exchangeRate",
561
+ "outputs": [
562
+ {
563
+ "internalType": "uint256",
564
+ "name": "",
565
+ "type": "uint256"
566
+ }
567
+ ],
568
+ "stateMutability": "view",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [],
573
+ "name": "getRewardTokens",
574
+ "outputs": [
575
+ {
576
+ "internalType": "address[]",
577
+ "name": "rewardTokens",
578
+ "type": "address[]"
579
+ }
580
+ ],
581
+ "stateMutability": "view",
582
+ "type": "function"
583
+ },
584
+ {
585
+ "inputs": [],
586
+ "name": "getTokensIn",
587
+ "outputs": [
588
+ {
589
+ "internalType": "address[]",
590
+ "name": "",
591
+ "type": "address[]"
592
+ }
593
+ ],
594
+ "stateMutability": "view",
595
+ "type": "function"
596
+ },
597
+ {
598
+ "inputs": [],
599
+ "name": "getTokensOut",
600
+ "outputs": [
601
+ {
602
+ "internalType": "address[]",
603
+ "name": "",
604
+ "type": "address[]"
605
+ }
606
+ ],
607
+ "stateMutability": "view",
608
+ "type": "function"
609
+ },
610
+ {
611
+ "inputs": [
612
+ {
613
+ "internalType": "string",
614
+ "name": "_name",
615
+ "type": "string"
616
+ },
617
+ {
618
+ "internalType": "string",
619
+ "name": "_symbol",
620
+ "type": "string"
621
+ }
622
+ ],
623
+ "name": "initialize",
624
+ "outputs": [],
625
+ "stateMutability": "nonpayable",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "internalType": "address",
632
+ "name": "token",
633
+ "type": "address"
634
+ }
635
+ ],
636
+ "name": "isValidTokenIn",
637
+ "outputs": [
638
+ {
639
+ "internalType": "bool",
640
+ "name": "",
641
+ "type": "bool"
642
+ }
643
+ ],
644
+ "stateMutability": "view",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [
649
+ {
650
+ "internalType": "address",
651
+ "name": "token",
652
+ "type": "address"
653
+ }
654
+ ],
655
+ "name": "isValidTokenOut",
656
+ "outputs": [
657
+ {
658
+ "internalType": "bool",
659
+ "name": "",
660
+ "type": "bool"
661
+ }
662
+ ],
663
+ "stateMutability": "view",
664
+ "type": "function"
665
+ },
666
+ {
667
+ "inputs": [],
668
+ "name": "name",
669
+ "outputs": [
670
+ {
671
+ "internalType": "string",
672
+ "name": "",
673
+ "type": "string"
674
+ }
675
+ ],
676
+ "stateMutability": "view",
677
+ "type": "function"
678
+ },
679
+ {
680
+ "inputs": [
681
+ {
682
+ "internalType": "address",
683
+ "name": "owner",
684
+ "type": "address"
685
+ }
686
+ ],
687
+ "name": "nonces",
688
+ "outputs": [
689
+ {
690
+ "internalType": "uint256",
691
+ "name": "",
692
+ "type": "uint256"
693
+ }
694
+ ],
695
+ "stateMutability": "view",
696
+ "type": "function"
697
+ },
698
+ {
699
+ "inputs": [],
700
+ "name": "owner",
701
+ "outputs": [
702
+ {
703
+ "internalType": "address",
704
+ "name": "",
705
+ "type": "address"
706
+ }
707
+ ],
708
+ "stateMutability": "view",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [],
713
+ "name": "pause",
714
+ "outputs": [],
715
+ "stateMutability": "nonpayable",
716
+ "type": "function"
717
+ },
718
+ {
719
+ "inputs": [],
720
+ "name": "paused",
721
+ "outputs": [
722
+ {
723
+ "internalType": "bool",
724
+ "name": "",
725
+ "type": "bool"
726
+ }
727
+ ],
728
+ "stateMutability": "view",
729
+ "type": "function"
730
+ },
731
+ {
732
+ "inputs": [],
733
+ "name": "pendingOwner",
734
+ "outputs": [
735
+ {
736
+ "internalType": "address",
737
+ "name": "",
738
+ "type": "address"
739
+ }
740
+ ],
741
+ "stateMutability": "view",
742
+ "type": "function"
743
+ },
744
+ {
745
+ "inputs": [
746
+ {
747
+ "internalType": "address",
748
+ "name": "owner",
749
+ "type": "address"
750
+ },
751
+ {
752
+ "internalType": "address",
753
+ "name": "spender",
754
+ "type": "address"
755
+ },
756
+ {
757
+ "internalType": "uint256",
758
+ "name": "value",
759
+ "type": "uint256"
760
+ },
761
+ {
762
+ "internalType": "uint256",
763
+ "name": "deadline",
764
+ "type": "uint256"
765
+ },
766
+ {
767
+ "internalType": "uint8",
768
+ "name": "v",
769
+ "type": "uint8"
770
+ },
771
+ {
772
+ "internalType": "bytes32",
773
+ "name": "r",
774
+ "type": "bytes32"
775
+ },
776
+ {
777
+ "internalType": "bytes32",
778
+ "name": "s",
779
+ "type": "bytes32"
780
+ }
781
+ ],
782
+ "name": "permit",
783
+ "outputs": [],
784
+ "stateMutability": "nonpayable",
785
+ "type": "function"
786
+ },
787
+ {
788
+ "inputs": [
789
+ {
790
+ "internalType": "address",
791
+ "name": "tokenIn",
792
+ "type": "address"
793
+ },
794
+ {
795
+ "internalType": "uint256",
796
+ "name": "amountTokenToDeposit",
797
+ "type": "uint256"
798
+ }
799
+ ],
800
+ "name": "previewDeposit",
801
+ "outputs": [
802
+ {
803
+ "internalType": "uint256",
804
+ "name": "amountSharesOut",
805
+ "type": "uint256"
806
+ }
807
+ ],
808
+ "stateMutability": "view",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [
813
+ {
814
+ "internalType": "address",
815
+ "name": "tokenOut",
816
+ "type": "address"
817
+ },
818
+ {
819
+ "internalType": "uint256",
820
+ "name": "amountSharesToRedeem",
821
+ "type": "uint256"
822
+ }
823
+ ],
824
+ "name": "previewRedeem",
825
+ "outputs": [
826
+ {
827
+ "internalType": "uint256",
828
+ "name": "amountTokenOut",
829
+ "type": "uint256"
830
+ }
831
+ ],
832
+ "stateMutability": "view",
833
+ "type": "function"
834
+ },
835
+ {
836
+ "inputs": [
837
+ {
838
+ "internalType": "address",
839
+ "name": "receiver",
840
+ "type": "address"
841
+ },
842
+ {
843
+ "internalType": "uint256",
844
+ "name": "amountSharesToRedeem",
845
+ "type": "uint256"
846
+ },
847
+ {
848
+ "internalType": "address",
849
+ "name": "tokenOut",
850
+ "type": "address"
851
+ },
852
+ {
853
+ "internalType": "uint256",
854
+ "name": "minTokenOut",
855
+ "type": "uint256"
856
+ },
857
+ {
858
+ "internalType": "bool",
859
+ "name": "burnFromInternalBalance",
860
+ "type": "bool"
861
+ }
862
+ ],
863
+ "name": "redeem",
864
+ "outputs": [
865
+ {
866
+ "internalType": "uint256",
867
+ "name": "amountTokenOut",
868
+ "type": "uint256"
869
+ }
870
+ ],
871
+ "stateMutability": "nonpayable",
872
+ "type": "function"
873
+ },
874
+ {
875
+ "inputs": [],
876
+ "name": "rewardIndexesCurrent",
877
+ "outputs": [
878
+ {
879
+ "internalType": "uint256[]",
880
+ "name": "indexes",
881
+ "type": "uint256[]"
882
+ }
883
+ ],
884
+ "stateMutability": "nonpayable",
885
+ "type": "function"
886
+ },
887
+ {
888
+ "inputs": [],
889
+ "name": "rewardIndexesStored",
890
+ "outputs": [
891
+ {
892
+ "internalType": "uint256[]",
893
+ "name": "indexes",
894
+ "type": "uint256[]"
895
+ }
896
+ ],
897
+ "stateMutability": "view",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [],
902
+ "name": "stakeToken",
903
+ "outputs": [
904
+ {
905
+ "internalType": "address",
906
+ "name": "",
907
+ "type": "address"
908
+ }
909
+ ],
910
+ "stateMutability": "view",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [],
915
+ "name": "symbol",
916
+ "outputs": [
917
+ {
918
+ "internalType": "string",
919
+ "name": "",
920
+ "type": "string"
921
+ }
922
+ ],
923
+ "stateMutability": "view",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [],
928
+ "name": "totalSupply",
929
+ "outputs": [
930
+ {
931
+ "internalType": "uint256",
932
+ "name": "",
933
+ "type": "uint256"
934
+ }
935
+ ],
936
+ "stateMutability": "view",
937
+ "type": "function"
938
+ },
939
+ {
940
+ "inputs": [
941
+ {
942
+ "internalType": "address",
943
+ "name": "to",
944
+ "type": "address"
945
+ },
946
+ {
947
+ "internalType": "uint256",
948
+ "name": "amount",
949
+ "type": "uint256"
950
+ }
951
+ ],
952
+ "name": "transfer",
953
+ "outputs": [
954
+ {
955
+ "internalType": "bool",
956
+ "name": "",
957
+ "type": "bool"
958
+ }
959
+ ],
960
+ "stateMutability": "nonpayable",
961
+ "type": "function"
962
+ },
963
+ {
964
+ "inputs": [
965
+ {
966
+ "internalType": "address",
967
+ "name": "from",
968
+ "type": "address"
969
+ },
970
+ {
971
+ "internalType": "address",
972
+ "name": "to",
973
+ "type": "address"
974
+ },
975
+ {
976
+ "internalType": "uint256",
977
+ "name": "amount",
978
+ "type": "uint256"
979
+ }
980
+ ],
981
+ "name": "transferFrom",
982
+ "outputs": [
983
+ {
984
+ "internalType": "bool",
985
+ "name": "",
986
+ "type": "bool"
987
+ }
988
+ ],
989
+ "stateMutability": "nonpayable",
990
+ "type": "function"
991
+ },
992
+ {
993
+ "inputs": [
994
+ {
995
+ "internalType": "address",
996
+ "name": "newOwner",
997
+ "type": "address"
998
+ },
999
+ {
1000
+ "internalType": "bool",
1001
+ "name": "direct",
1002
+ "type": "bool"
1003
+ },
1004
+ {
1005
+ "internalType": "bool",
1006
+ "name": "renounce",
1007
+ "type": "bool"
1008
+ }
1009
+ ],
1010
+ "name": "transferOwnership",
1011
+ "outputs": [],
1012
+ "stateMutability": "nonpayable",
1013
+ "type": "function"
1014
+ },
1015
+ {
1016
+ "inputs": [],
1017
+ "name": "unpause",
1018
+ "outputs": [],
1019
+ "stateMutability": "nonpayable",
1020
+ "type": "function"
1021
+ },
1022
+ {
1023
+ "inputs": [],
1024
+ "name": "vault",
1025
+ "outputs": [
1026
+ {
1027
+ "internalType": "address",
1028
+ "name": "",
1029
+ "type": "address"
1030
+ }
1031
+ ],
1032
+ "stateMutability": "view",
1033
+ "type": "function"
1034
+ },
1035
+ {
1036
+ "inputs": [],
1037
+ "name": "vaultSupervisor",
1038
+ "outputs": [
1039
+ {
1040
+ "internalType": "address",
1041
+ "name": "",
1042
+ "type": "address"
1043
+ }
1044
+ ],
1045
+ "stateMutability": "view",
1046
+ "type": "function"
1047
+ },
1048
+ {
1049
+ "inputs": [],
1050
+ "name": "yieldToken",
1051
+ "outputs": [
1052
+ {
1053
+ "internalType": "address",
1054
+ "name": "",
1055
+ "type": "address"
1056
+ }
1057
+ ],
1058
+ "stateMutability": "view",
1059
+ "type": "function"
1060
+ },
1061
+ {
1062
+ "stateMutability": "payable",
1063
+ "type": "receive"
1064
+ }
1065
+ ],
1066
+ "bytecode": "0x6101206040523480156200001257600080fd5b5060405162003dea38038062003dea833981016040819052620000359162000236565b818181806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d91906200026e565b60ff16608052610134805460ff191690556001600160a01b0390811660a052821660c0819052604080516338d52e0f60e01b815290516338d52e0f916004808201926020929091908290030181865afa158015620000ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012591906200029a565b6001600160a01b0390811660e052166101005250620001436200014b565b5050620002b8565b600154600160a81b900460ff1615620001ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff9081161462000217576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200023157600080fd5b919050565b600080604083850312156200024a57600080fd5b620002558362000219565b9150620002656020840162000219565b90509250929050565b6000602082840312156200028157600080fd5b815160ff811681146200029357600080fd5b9392505050565b600060208284031215620002ad57600080fd5b620002938262000219565b60805160a05160c05160e05161010051613a14620003d66000396000818161047301528181611774015281816117ff01528181611ff101526121a80152600081816103e301528181610a86015281816110a5015281816110c60152818161141a01528181611646015281816116bf015281816116f001528181611f86015281816122bc0152818161233501526123660152600081816106f3015281816107ae01528181610a6501528181610b6f01528181610f70015281816113df015281816116830152818161173e0152818161182c01528181611fa701528181611fd0015281816121d501528181612236015281816122f9015281816123a10152818161242701526124ad015260006104c7015260006103290152613a146000f3fe6080604052600436106101cf5760003560e01c806306fdde03146101db578063071bc3c914610206578063078dfbe714610228578063095ea7b31461024a578063128fced11461027a57806318160ddd146102a757806320e8c565146102cf578063213cae63146102e257806323b872dd146102f7578063313ce567146103175780633644e5151461035d5780633ba0b9a9146103725780633f4ba83a146103875780634cd88b761461039c5780634e71e0c8146103bc57806351ed6a30146103d15780635c975abb1461041257806370a082311461042b5780637235200e14610461578063769f8e5d1461049557806376d5de85146104b5578063784367d6146104e95780637ecebe00146105095780638456cb591461052957806384b0196e1461053e5780638da5cb5b1461056657806395d89b4114610586578063a40bee501461059b578063a9059cbb146105bf578063b8f82b26146105df578063c4f59f9b146105ff578063cbe52ae314610620578063d505accf14610640578063da88ecb414610660578063dd62ed3e14610681578063e30c3978146106a1578063ef5cfb8c1461027a578063f8b2f99114610660578063fa5a4f06146106c1578063fbfa77cf146106e157600080fd5b366101d657005b600080fd5b3480156101e757600080fd5b506101f0610715565b6040516101fd9190613142565b60405180910390f35b34801561021257600080fd5b5061021b6107a7565b6040516101fd9190613155565b34801561023457600080fd5b506102486102433660046131cc565b6107d7565b005b34801561025657600080fd5b5061026a610265366004613215565b6108dc565b60405190151581526020016101fd565b34801561028657600080fd5b5061029a61029536600461323f565b6108f6565b6040516101fd9190613296565b3480156102b357600080fd5b506004546001600160f81b03165b6040519081526020016101fd565b6102c16102dd3660046132a9565b610911565b3480156102ee57600080fd5b5061021b610a5a565b34801561030357600080fd5b5061026a6103123660046132eb565b610ab0565b34801561032357600080fd5b5061034b7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101fd565b34801561036957600080fd5b506102c1610b2e565b34801561037e57600080fd5b506102c1610b38565b34801561039357600080fd5b50610248610c00565b3480156103a857600080fd5b506102486103b73660046133c9565b610c34565b3480156103c857600080fd5b50610248610d6e565b3480156103dd57600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b6040516101fd919061342c565b34801561041e57600080fd5b506101345460ff1661026a565b34801561043757600080fd5b506102c161044636600461323f565b6001600160a01b031660009081526002602052604090205490565b34801561046d57600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a157600080fd5b506102c16104b0366004613440565b610e19565b3480156104c157600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f557600080fd5b5061026a61050436600461323f565b610f6e565b34801561051557600080fd5b506102c161052436600461323f565b610fa0565b34801561053557600080fd5b50610248610fbe565b34801561054a57600080fd5b50610553610ff0565b6040516101fd979695949392919061349b565b34801561057257600080fd5b50600054610405906001600160a01b031681565b34801561059257600080fd5b506101f061108e565b3480156105a757600080fd5b506105b061109d565b6040516101fd93929190613521565b3480156105cb57600080fd5b5061026a6105da366004613215565b611151565b3480156105eb57600080fd5b506102c16105fa366004613215565b6111c3565b34801561060b57600080fd5b5060408051600081526020810190915261021b565b34801561062c57600080fd5b506102c161063b366004613215565b6111fe565b34801561064c57600080fd5b5061024861065b366004613572565b61122e565b34801561066c57600080fd5b5060408051600081526020810190915261029a565b34801561068d57600080fd5b506102c161069c3660046135df565b6113b0565b3480156106ad57600080fd5b50600154610405906001600160a01b031681565b3480156106cd57600080fd5b5061026a6106dc36600461323f565b6113db565b3480156106ed57600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b60606005805461072490613612565b80601f016020809104026020016040519081016040528092919081815260200182805461075090613612565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b5050505050905090565b60606107d27f000000000000000000000000000000000000000000000000000000000000000061145b565b905090565b6000546001600160a01b0316331461080a5760405162461bcd60e51b815260040161080190613646565b60405180910390fd5b81156108bb576001600160a01b0383161515806108245750805b6108685760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610801565b600080546040516001600160a01b038087169392169160008051602061399f83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6000336108ea8185856114b6565b60019150505b92915050565b604080516000808252602082019092526060915b5092915050565b600454600090600119600160f81b90910460ff16016109425760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b179055610960846113db565b61097f57836040516315d57ce360e31b8152600401610801919061342c565b826000036109a057604051630a907f2f60e41b815260040160405180910390fd5b6109ab8433856115db565b6109b58484611642565b9050818110156109dc578082604051635e38f95d60e11b81526004016108019291906136b2565b6109e68582611890565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610a359291906136b2565b60405180910390a4600480546001600160f81b0316600160f81b179055949350505050565b60606107d281610aaa7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006119a8565b90611a36565b600454600090600119600160f81b90910460ff1601610ae15760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b17905533610b02858285611c1b565b610b0d858585611c95565b6001915050600480546001600160f81b0316600160f81b1790559392505050565b60006107d2611eb7565b600080670de0b6b3a76400006040516303d1689d60e11b8152670de0b6b3a764000060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a90602401602060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906136c0565b9050670de0b6b3a7640000610bef82846136ef565b610bf9919061371c565b9250505090565b6000546001600160a01b03163314610c2a5760405162461bcd60e51b815260040161080190613646565b610c32611ec1565b565b600154600160a81b900460ff1615808015610c5a575060018054600160a01b900460ff16105b80610c815750610c6930611f0e565b158015610c81575060018054600160a01b900460ff16145b610ce45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610801565b6001805460ff60a01b1916600160a01b1790558015610d11576001805460ff60a81b1916600160a81b1790555b610d1b8383611f1d565b610d23611f58565b80156108d7576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6001546001600160a01b0316338114610dc95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610801565b600080546040516001600160a01b038085169392169160008051602061399f83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600454600090600119600160f81b90910460ff1601610e4a5760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b179055610e6884610f6e565b610e8757836040516388a5056160e01b8152600401610801919061342c565b84600003610ea85760405163c3d83b0760e01b815260040160405180910390fd5b8115610ebd57610eb83086612015565b610ec7565b610ec73386612015565b610ed286858761218e565b905082811015610ef95780836040516305ff726560e51b81526004016108019291906136b2565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c8885604051610f489291906136b2565b60405180910390a4600480546001600160f81b0316600160f81b17905595945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6001600160a01b0381166000908152609f60205260408120546108f0565b6000546001600160a01b03163314610fe85760405162461bcd60e51b815260040161080190613646565b610c3261225c565b600060608060008060006060606b546000801b1480156110105750606c54155b6110545760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610801565b61105c61229a565b6110646122a9565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606006805461072490613612565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111469190613730565b925092509250909192565b600454600090600119600160f81b90910460ff16016111825760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b179055336111a3818585611c95565b6001915050600480546001600160f81b0316600160f81b17905592915050565b60006111ce836113db565b6111ed57826040516315d57ce360e31b8152600401610801919061342c565b6111f783836122b8565b9392505050565b600061120983610f6e565b61122857826040516388a5056160e01b8152600401610801919061342c565b816111f7565b8342111561127e5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610801565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886112cb8c6001600160a01b03166000908152609f6020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006113268261258f565b90506000611336828787876125bc565b9050896001600160a01b0316816001600160a01b0316146113995760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610801565b6113a48a8a8a6114b6565b50505050505050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061144e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b806108f0575060006108f0565b6040805160018082528183019092526060916020808301908036833701905050905081816000815181106114915761149161374d565b60200260200101906001600160a01b031690816001600160a01b031681525050919050565b6001600160a01b0383166115185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610801565b6001600160a01b0382166115795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610801565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611627578034146108d75760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610801565b80156108d7576108d76001600160a01b0384168330846125e6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141580156116b857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156116ee577f00000000000000000000000000000000000000000000000000000000000000006116e88484612651565b90935091505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036117e857604051630efe6a8b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201849052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690630efe6a8b906064016020604051808303816000875af11580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e191906136c0565b90506108f0565b604051638b19802560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638b19802590611856907f0000000000000000000000000000000000000000000000000000000000000000908690600401613763565b600060405180830381600087803b15801561187057600080fd5b505af1158015611884573d6000803e3d6000fd5b505050508190506108f0565b6001600160a01b0382166118e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610801565b6118f26000838361265b565b6118fb81612663565b600480546000906119169084906001600160f81b031661377c565b92506101000a8154816001600160f81b0302191690836001600160f81b031602179055508060026000846001600160a01b03166001600160a01b03168152602001908152602001600020600082825461196f919061379c565b90915550506040518181526001600160a01b038316906000906000805160206139bf8339815191529060200160405180910390a35b5050565b604080516002808252606080830184529260208301908036833701905050905082816000815181106119dc576119dc61374d565b60200260200101906001600160a01b031690816001600160a01b0316815250508181600181518110611a1057611a1061374d565b60200260200101906001600160a01b031690816001600160a01b03168152505092915050565b606060008083516001600160401b03811115611a5457611a54613327565b604051908082528060200260200182016040528015611a7d578160200160208202803683370190505b50905060005b8451811015611ae857611aaf86868381518110611aa257611aa261374d565b602002602001015161267d565b611ae05782806001019350506001828281518110611acf57611acf61374d565b911515602092830291909101909101525b600101611a83565b50818551016001600160401b03811115611b0457611b04613327565b604051908082528060200260200182016040528015611b2d578160200160208202803683370190505b50925060005b8551811015611b8857858181518110611b4e57611b4e61374d565b6020026020010151848281518110611b6857611b6861374d565b6001600160a01b0390921660209283029190910190910152600101611b33565b50845160005b8551811015611c1157828181518110611ba957611ba961374d565b602002602001015115611c0957858181518110611bc857611bc861374d565b6020026020010151858380600101945081518110611be857611be861374d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611b8e565b5050505092915050565b6000611c2784846113b0565b90506000198114611c8f5781811015611c825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610801565b611c8f84848484036114b6565b50505050565b6001600160a01b038316611cf95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610801565b6001600160a01b038216611d5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610801565b816001600160a01b0316836001600160a01b031603611db65760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610801565b611dc183838361265b565b6001600160a01b03831660009081526002602052604090205481811015611e395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610801565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290611e7090849061379c565b92505081905550826001600160a01b0316846001600160a01b03166000805160206139bf83398151915284604051611eaa91815260200190565b60405180910390a3611c8f565b60006107d26126dc565b611ec9612750565b610134805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051611f04919061342c565b60405180910390a1565b6001600160a01b03163b151590565b600154600160a81b900460ff16611f465760405162461bcd60e51b8152600401610801906137af565b611f50828261279a565b6119a46127f0565b600154600160a81b900460ff16611f815760405162461bcd60e51b8152600401610801906137af565b611fcb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061282d565b610c327f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061282d565b6001600160a01b0382166120755760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610801565b6120818260008361265b565b6001600160a01b038216600090815260026020526040902054818110156120f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610801565b6001600160a01b0383166000908152600260205260409020828203905561211b82612663565b600480546000906121369084906001600160f81b03166137fa565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b03166000805160206139bf833981519152846040516115ce91815260200190565b604051637fb2a0a160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637fb2a0a1906121ff907f0000000000000000000000000000000000000000000000000000000000000000908690600401613763565b600060405180830381600087803b15801561221957600080fd5b505af115801561222d573d6000803e3d6000fd5b5050505061090a7f000000000000000000000000000000000000000000000000000000000000000085846128ed565b6122646129b1565b610134805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ef73390565b6060606d805461072490613612565b6060606e805461072490613612565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561232e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15612364577f000000000000000000000000000000000000000000000000000000000000000061235e8484612651565b90935091505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036125895760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242191906136c0565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a791906136c0565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166322da98e76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d91906136c0565b90508061253a868561379c565b111561256a576040516313a2ce0760e11b8152600481018290526024810184905260448101869052606401610801565b8261257583876136ef565b61257f919061371c565b93505050506108f0565b50919050565b60006108f061259c611eb7565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006125cd878787876129f8565b915091506125da81612ab2565b5090505b949350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c8f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612bfa565b60006108f061381a565b6108d76129b1565b60006001600160f81b0382111561267957600080fd5b5090565b8151600090815b818110156126d157836001600160a01b03168582815181106126a8576126a861374d565b60200260200101516001600160a01b0316036126c9576001925050506108f0565b600101612684565b506000949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612707612ccf565b61270f612d28565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6101345460ff16610c325760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610801565b600154600160a81b900460ff166127c35760405162461bcd60e51b8152600401610801906137af565b6127cd8282612d59565b6119a482604051806040016040528060018152602001603160f81b815250612db5565b600154600160a81b900460ff166128195760405162461bcd60e51b8152600401610801906137af565b600080546001600160a01b03191633179055565b6001600160a01b03821661283f575050565b61285160026001600160601b03613830565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156128aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ce91906136c0565b10156119a4576128e082826000612de8565b6119a48282600019612de8565b806000036128fa57505050565b6001600160a01b03831661299d576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612955576040519150601f19603f3d011682016040523d82523d6000602084013e61295a565b606091505b5050905080611c8f5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610801565b6108d76001600160a01b0384168383612efc565b6101345460ff1615610c325760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610801565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612a255750600090506003612aa9565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612a79573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612aa257600060019250925050612aa9565b9150600090505b94509492505050565b6000816004811115612ac657612ac661350b565b03612ace5750565b6001816004811115612ae257612ae261350b565b03612b2a5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610801565b6002816004811115612b3e57612b3e61350b565b03612b8b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610801565b6003816004811115612b9f57612b9f61350b565b03612bf75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610801565b50565b6000612c4f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612f1b9092919063ffffffff16565b9050805160001480612c70575080806020019051810190612c709190613856565b6108d75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610801565b600080612cda61229a565b805190915015612cf1578051602090910120919050565b606b548015612d005792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612d336122a9565b805190915015612d4a578051602090910120919050565b606c548015612d005792915050565b600154600160a81b900460ff16612d825760405162461bcd60e51b8152600401610801906137af565b6005612d8e83826138c3565b506006612d9b82826138c3565b5050600480546001600160f81b0316600160f81b17905550565b600154600160a81b900460ff16612dde5760405162461bcd60e51b8152600401610801906137af565b6119a48282612f2a565b600080846001600160a01b031663095ea7b360e01b8585604051602401612e10929190613763565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612e4e9190613982565b6000604051808303816000865af19150503d8060008114612e8b576040519150601f19603f3d011682016040523d82523d6000602084013e612e90565b606091505b5091509150818015612eba575080511580612eba575080806020019051810190612eba9190613856565b612ef55760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610801565b5050505050565b6108d78363a9059cbb60e01b848460405160240161261a929190613763565b60606125de8484600085612f7b565b600154600160a81b900460ff16612f535760405162461bcd60e51b8152600401610801906137af565b606d612f5f83826138c3565b50606e612f6c82826138c3565b50506000606b819055606c5550565b606082471015612fdc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610801565b600080866001600160a01b03168587604051612ff89190613982565b60006040518083038185875af1925050503d8060008114613035576040519150601f19603f3d011682016040523d82523d6000602084013e61303a565b606091505b509150915061304b87838387613056565b979650505050505050565b606083156130c35782516000036130bc5761307085611f0e565b6130bc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610801565b50816125de565b6125de83838151156130d85781518083602001fd5b8060405162461bcd60e51b81526004016108019190613142565b60005b8381101561310d5781810151838201526020016130f5565b50506000910152565b6000815180845261312e8160208601602086016130f2565b601f01601f19169290920160200192915050565b6020815260006111f76020830184613116565b6020808252825182820181905260009190848201906040850190845b818110156131965783516001600160a01b031683529284019291840191600101613171565b50909695505050505050565b80356001600160a01b03811681146131b957600080fd5b919050565b8015158114612bf757600080fd5b6000806000606084860312156131e157600080fd5b6131ea846131a2565b925060208401356131fa816131be565b9150604084013561320a816131be565b809150509250925092565b6000806040838503121561322857600080fd5b613231836131a2565b946020939093013593505050565b60006020828403121561325157600080fd5b6111f7826131a2565b60008151808452602080850194506020840160005b8381101561328b5781518752958201959082019060010161326f565b509495945050505050565b6020815260006111f7602083018461325a565b600080600080608085870312156132bf57600080fd5b6132c8856131a2565b93506132d6602086016131a2565b93969395505050506040820135916060013590565b60008060006060848603121561330057600080fd5b613309846131a2565b9250613317602085016131a2565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261334e57600080fd5b81356001600160401b038082111561336857613368613327565b604051601f8301601f19908116603f0116810190828211818310171561339057613390613327565b816040528381528660208588010111156133a957600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156133dc57600080fd5b82356001600160401b03808211156133f357600080fd5b6133ff8683870161333d565b9350602085013591508082111561341557600080fd5b506134228582860161333d565b9150509250929050565b6001600160a01b0391909116815260200190565b600080600080600060a0868803121561345857600080fd5b613461866131a2565b945060208601359350613476604087016131a2565b925060608601359150608086013561348d816131be565b809150509295509295909350565b60ff60f81b8816815260e0602082015260006134ba60e0830189613116565b82810360408401526134cc8189613116565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506134fd818561325a565b9a9950505050505050505050565b634e487b7160e01b600052602160045260246000fd5b606081016002851061354357634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff81168114612bf757600080fd5b600080600080600080600060e0888a03121561358d57600080fd5b613596886131a2565b96506135a4602089016131a2565b9550604088013594506060880135935060808801356135c281613563565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156135f257600080fd5b6135fb836131a2565b9150613609602084016131a2565b90509250929050565b600181811c9082168061362657607f821691505b60208210810361258957634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b6000602082840312156136d257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108f0576108f06136d9565b634e487b7160e01b600052601260045260246000fd5b60008261372b5761372b613706565b500490565b60006020828403121561374257600080fd5b81516111f781613563565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03929092168252602082015260400190565b6001600160f81b0381811683821601908082111561090a5761090a6136d9565b808201808211156108f0576108f06136d9565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160f81b0382811682821603908082111561090a5761090a6136d9565b634e487b7160e01b600052600160045260246000fd5b60006001600160601b038381168061384a5761384a613706565b92169190910492915050565b60006020828403121561386857600080fd5b81516111f7816131be565b601f8211156108d7576000816000526020600020601f850160051c8101602086101561389c5750805b601f850160051c820191505b818110156138bb578281556001016138a8565b505050505050565b81516001600160401b038111156138dc576138dc613327565b6138f0816138ea8454613612565b84613873565b602080601f831160018114613925576000841561390d5750858301515b600019600386901b1c1916600185901b1785556138bb565b600085815260208120601f198616915b8281101561395457888601518255948401946001909101908401613935565b50858210156139725787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516139948184602087016130f2565b919091019291505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c7386a1655ba0f41119517e2188aee160b54b6d5486851d93467cef6644115c464736f6c63430008170033",
1067
+ "deployedBytecode": "0x6080604052600436106101cf5760003560e01c806306fdde03146101db578063071bc3c914610206578063078dfbe714610228578063095ea7b31461024a578063128fced11461027a57806318160ddd146102a757806320e8c565146102cf578063213cae63146102e257806323b872dd146102f7578063313ce567146103175780633644e5151461035d5780633ba0b9a9146103725780633f4ba83a146103875780634cd88b761461039c5780634e71e0c8146103bc57806351ed6a30146103d15780635c975abb1461041257806370a082311461042b5780637235200e14610461578063769f8e5d1461049557806376d5de85146104b5578063784367d6146104e95780637ecebe00146105095780638456cb591461052957806384b0196e1461053e5780638da5cb5b1461056657806395d89b4114610586578063a40bee501461059b578063a9059cbb146105bf578063b8f82b26146105df578063c4f59f9b146105ff578063cbe52ae314610620578063d505accf14610640578063da88ecb414610660578063dd62ed3e14610681578063e30c3978146106a1578063ef5cfb8c1461027a578063f8b2f99114610660578063fa5a4f06146106c1578063fbfa77cf146106e157600080fd5b366101d657005b600080fd5b3480156101e757600080fd5b506101f0610715565b6040516101fd9190613142565b60405180910390f35b34801561021257600080fd5b5061021b6107a7565b6040516101fd9190613155565b34801561023457600080fd5b506102486102433660046131cc565b6107d7565b005b34801561025657600080fd5b5061026a610265366004613215565b6108dc565b60405190151581526020016101fd565b34801561028657600080fd5b5061029a61029536600461323f565b6108f6565b6040516101fd9190613296565b3480156102b357600080fd5b506004546001600160f81b03165b6040519081526020016101fd565b6102c16102dd3660046132a9565b610911565b3480156102ee57600080fd5b5061021b610a5a565b34801561030357600080fd5b5061026a6103123660046132eb565b610ab0565b34801561032357600080fd5b5061034b7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101fd565b34801561036957600080fd5b506102c1610b2e565b34801561037e57600080fd5b506102c1610b38565b34801561039357600080fd5b50610248610c00565b3480156103a857600080fd5b506102486103b73660046133c9565b610c34565b3480156103c857600080fd5b50610248610d6e565b3480156103dd57600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b6040516101fd919061342c565b34801561041e57600080fd5b506101345460ff1661026a565b34801561043757600080fd5b506102c161044636600461323f565b6001600160a01b031660009081526002602052604090205490565b34801561046d57600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a157600080fd5b506102c16104b0366004613440565b610e19565b3480156104c157600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f557600080fd5b5061026a61050436600461323f565b610f6e565b34801561051557600080fd5b506102c161052436600461323f565b610fa0565b34801561053557600080fd5b50610248610fbe565b34801561054a57600080fd5b50610553610ff0565b6040516101fd979695949392919061349b565b34801561057257600080fd5b50600054610405906001600160a01b031681565b34801561059257600080fd5b506101f061108e565b3480156105a757600080fd5b506105b061109d565b6040516101fd93929190613521565b3480156105cb57600080fd5b5061026a6105da366004613215565b611151565b3480156105eb57600080fd5b506102c16105fa366004613215565b6111c3565b34801561060b57600080fd5b5060408051600081526020810190915261021b565b34801561062c57600080fd5b506102c161063b366004613215565b6111fe565b34801561064c57600080fd5b5061024861065b366004613572565b61122e565b34801561066c57600080fd5b5060408051600081526020810190915261029a565b34801561068d57600080fd5b506102c161069c3660046135df565b6113b0565b3480156106ad57600080fd5b50600154610405906001600160a01b031681565b3480156106cd57600080fd5b5061026a6106dc36600461323f565b6113db565b3480156106ed57600080fd5b506104057f000000000000000000000000000000000000000000000000000000000000000081565b60606005805461072490613612565b80601f016020809104026020016040519081016040528092919081815260200182805461075090613612565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b5050505050905090565b60606107d27f000000000000000000000000000000000000000000000000000000000000000061145b565b905090565b6000546001600160a01b0316331461080a5760405162461bcd60e51b815260040161080190613646565b60405180910390fd5b81156108bb576001600160a01b0383161515806108245750805b6108685760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610801565b600080546040516001600160a01b038087169392169160008051602061399f83398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6000336108ea8185856114b6565b60019150505b92915050565b604080516000808252602082019092526060915b5092915050565b600454600090600119600160f81b90910460ff16016109425760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b179055610960846113db565b61097f57836040516315d57ce360e31b8152600401610801919061342c565b826000036109a057604051630a907f2f60e41b815260040160405180910390fd5b6109ab8433856115db565b6109b58484611642565b9050818110156109dc578082604051635e38f95d60e11b81526004016108019291906136b2565b6109e68582611890565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610a359291906136b2565b60405180910390a4600480546001600160f81b0316600160f81b179055949350505050565b60606107d281610aaa7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006119a8565b90611a36565b600454600090600119600160f81b90910460ff1601610ae15760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b17905533610b02858285611c1b565b610b0d858585611c95565b6001915050600480546001600160f81b0316600160f81b1790559392505050565b60006107d2611eb7565b600080670de0b6b3a76400006040516303d1689d60e11b8152670de0b6b3a764000060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a90602401602060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906136c0565b9050670de0b6b3a7640000610bef82846136ef565b610bf9919061371c565b9250505090565b6000546001600160a01b03163314610c2a5760405162461bcd60e51b815260040161080190613646565b610c32611ec1565b565b600154600160a81b900460ff1615808015610c5a575060018054600160a01b900460ff16105b80610c815750610c6930611f0e565b158015610c81575060018054600160a01b900460ff16145b610ce45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610801565b6001805460ff60a01b1916600160a01b1790558015610d11576001805460ff60a81b1916600160a81b1790555b610d1b8383611f1d565b610d23611f58565b80156108d7576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6001546001600160a01b0316338114610dc95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610801565b600080546040516001600160a01b038085169392169160008051602061399f83398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600454600090600119600160f81b90910460ff1601610e4a5760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b179055610e6884610f6e565b610e8757836040516388a5056160e01b8152600401610801919061342c565b84600003610ea85760405163c3d83b0760e01b815260040160405180910390fd5b8115610ebd57610eb83086612015565b610ec7565b610ec73386612015565b610ed286858761218e565b905082811015610ef95780836040516305ff726560e51b81526004016108019291906136b2565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c8885604051610f489291906136b2565b60405180910390a4600480546001600160f81b0316600160f81b17905595945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6001600160a01b0381166000908152609f60205260408120546108f0565b6000546001600160a01b03163314610fe85760405162461bcd60e51b815260040161080190613646565b610c3261225c565b600060608060008060006060606b546000801b1480156110105750606c54155b6110545760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610801565b61105c61229a565b6110646122a9565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606006805461072490613612565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111469190613730565b925092509250909192565b600454600090600119600160f81b90910460ff16016111825760405162461bcd60e51b81526004016108019061367b565b600480546001600160f81b0316600160f91b179055336111a3818585611c95565b6001915050600480546001600160f81b0316600160f81b17905592915050565b60006111ce836113db565b6111ed57826040516315d57ce360e31b8152600401610801919061342c565b6111f783836122b8565b9392505050565b600061120983610f6e565b61122857826040516388a5056160e01b8152600401610801919061342c565b816111f7565b8342111561127e5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610801565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886112cb8c6001600160a01b03166000908152609f6020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006113268261258f565b90506000611336828787876125bc565b9050896001600160a01b0316816001600160a01b0316146113995760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610801565b6113a48a8a8a6114b6565b50505050505050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061144e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b806108f0575060006108f0565b6040805160018082528183019092526060916020808301908036833701905050905081816000815181106114915761149161374d565b60200260200101906001600160a01b031690816001600160a01b031681525050919050565b6001600160a01b0383166115185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610801565b6001600160a01b0382166115795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610801565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316611627578034146108d75760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610801565b80156108d7576108d76001600160a01b0384168330846125e6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141580156116b857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156116ee577f00000000000000000000000000000000000000000000000000000000000000006116e88484612651565b90935091505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036117e857604051630efe6a8b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201849052600060448301527f00000000000000000000000000000000000000000000000000000000000000001690630efe6a8b906064016020604051808303816000875af11580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e191906136c0565b90506108f0565b604051638b19802560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638b19802590611856907f0000000000000000000000000000000000000000000000000000000000000000908690600401613763565b600060405180830381600087803b15801561187057600080fd5b505af1158015611884573d6000803e3d6000fd5b505050508190506108f0565b6001600160a01b0382166118e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610801565b6118f26000838361265b565b6118fb81612663565b600480546000906119169084906001600160f81b031661377c565b92506101000a8154816001600160f81b0302191690836001600160f81b031602179055508060026000846001600160a01b03166001600160a01b03168152602001908152602001600020600082825461196f919061379c565b90915550506040518181526001600160a01b038316906000906000805160206139bf8339815191529060200160405180910390a35b5050565b604080516002808252606080830184529260208301908036833701905050905082816000815181106119dc576119dc61374d565b60200260200101906001600160a01b031690816001600160a01b0316815250508181600181518110611a1057611a1061374d565b60200260200101906001600160a01b031690816001600160a01b03168152505092915050565b606060008083516001600160401b03811115611a5457611a54613327565b604051908082528060200260200182016040528015611a7d578160200160208202803683370190505b50905060005b8451811015611ae857611aaf86868381518110611aa257611aa261374d565b602002602001015161267d565b611ae05782806001019350506001828281518110611acf57611acf61374d565b911515602092830291909101909101525b600101611a83565b50818551016001600160401b03811115611b0457611b04613327565b604051908082528060200260200182016040528015611b2d578160200160208202803683370190505b50925060005b8551811015611b8857858181518110611b4e57611b4e61374d565b6020026020010151848281518110611b6857611b6861374d565b6001600160a01b0390921660209283029190910190910152600101611b33565b50845160005b8551811015611c1157828181518110611ba957611ba961374d565b602002602001015115611c0957858181518110611bc857611bc861374d565b6020026020010151858380600101945081518110611be857611be861374d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611b8e565b5050505092915050565b6000611c2784846113b0565b90506000198114611c8f5781811015611c825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610801565b611c8f84848484036114b6565b50505050565b6001600160a01b038316611cf95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610801565b6001600160a01b038216611d5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610801565b816001600160a01b0316836001600160a01b031603611db65760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610801565b611dc183838361265b565b6001600160a01b03831660009081526002602052604090205481811015611e395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610801565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290611e7090849061379c565b92505081905550826001600160a01b0316846001600160a01b03166000805160206139bf83398151915284604051611eaa91815260200190565b60405180910390a3611c8f565b60006107d26126dc565b611ec9612750565b610134805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051611f04919061342c565b60405180910390a1565b6001600160a01b03163b151590565b600154600160a81b900460ff16611f465760405162461bcd60e51b8152600401610801906137af565b611f50828261279a565b6119a46127f0565b600154600160a81b900460ff16611f815760405162461bcd60e51b8152600401610801906137af565b611fcb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061282d565b610c327f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061282d565b6001600160a01b0382166120755760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610801565b6120818260008361265b565b6001600160a01b038216600090815260026020526040902054818110156120f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610801565b6001600160a01b0383166000908152600260205260409020828203905561211b82612663565b600480546000906121369084906001600160f81b03166137fa565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b03166000805160206139bf833981519152846040516115ce91815260200190565b604051637fb2a0a160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637fb2a0a1906121ff907f0000000000000000000000000000000000000000000000000000000000000000908690600401613763565b600060405180830381600087803b15801561221957600080fd5b505af115801561222d573d6000803e3d6000fd5b5050505061090a7f000000000000000000000000000000000000000000000000000000000000000085846128ed565b6122646129b1565b610134805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ef73390565b6060606d805461072490613612565b6060606e805461072490613612565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561232e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15612364577f000000000000000000000000000000000000000000000000000000000000000061235e8484612651565b90935091505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036125895760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242191906136c0565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a791906136c0565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166322da98e76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d91906136c0565b90508061253a868561379c565b111561256a576040516313a2ce0760e11b8152600481018290526024810184905260448101869052606401610801565b8261257583876136ef565b61257f919061371c565b93505050506108f0565b50919050565b60006108f061259c611eb7565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006125cd878787876129f8565b915091506125da81612ab2565b5090505b949350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c8f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612bfa565b60006108f061381a565b6108d76129b1565b60006001600160f81b0382111561267957600080fd5b5090565b8151600090815b818110156126d157836001600160a01b03168582815181106126a8576126a861374d565b60200260200101516001600160a01b0316036126c9576001925050506108f0565b600101612684565b506000949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612707612ccf565b61270f612d28565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6101345460ff16610c325760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610801565b600154600160a81b900460ff166127c35760405162461bcd60e51b8152600401610801906137af565b6127cd8282612d59565b6119a482604051806040016040528060018152602001603160f81b815250612db5565b600154600160a81b900460ff166128195760405162461bcd60e51b8152600401610801906137af565b600080546001600160a01b03191633179055565b6001600160a01b03821661283f575050565b61285160026001600160601b03613830565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156128aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ce91906136c0565b10156119a4576128e082826000612de8565b6119a48282600019612de8565b806000036128fa57505050565b6001600160a01b03831661299d576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612955576040519150601f19603f3d011682016040523d82523d6000602084013e61295a565b606091505b5050905080611c8f5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610801565b6108d76001600160a01b0384168383612efc565b6101345460ff1615610c325760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610801565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612a255750600090506003612aa9565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612a79573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612aa257600060019250925050612aa9565b9150600090505b94509492505050565b6000816004811115612ac657612ac661350b565b03612ace5750565b6001816004811115612ae257612ae261350b565b03612b2a5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610801565b6002816004811115612b3e57612b3e61350b565b03612b8b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610801565b6003816004811115612b9f57612b9f61350b565b03612bf75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610801565b50565b6000612c4f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612f1b9092919063ffffffff16565b9050805160001480612c70575080806020019051810190612c709190613856565b6108d75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610801565b600080612cda61229a565b805190915015612cf1578051602090910120919050565b606b548015612d005792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612d336122a9565b805190915015612d4a578051602090910120919050565b606c548015612d005792915050565b600154600160a81b900460ff16612d825760405162461bcd60e51b8152600401610801906137af565b6005612d8e83826138c3565b506006612d9b82826138c3565b5050600480546001600160f81b0316600160f81b17905550565b600154600160a81b900460ff16612dde5760405162461bcd60e51b8152600401610801906137af565b6119a48282612f2a565b600080846001600160a01b031663095ea7b360e01b8585604051602401612e10929190613763565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612e4e9190613982565b6000604051808303816000865af19150503d8060008114612e8b576040519150601f19603f3d011682016040523d82523d6000602084013e612e90565b606091505b5091509150818015612eba575080511580612eba575080806020019051810190612eba9190613856565b612ef55760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610801565b5050505050565b6108d78363a9059cbb60e01b848460405160240161261a929190613763565b60606125de8484600085612f7b565b600154600160a81b900460ff16612f535760405162461bcd60e51b8152600401610801906137af565b606d612f5f83826138c3565b50606e612f6c82826138c3565b50506000606b819055606c5550565b606082471015612fdc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610801565b600080866001600160a01b03168587604051612ff89190613982565b60006040518083038185875af1925050503d8060008114613035576040519150601f19603f3d011682016040523d82523d6000602084013e61303a565b606091505b509150915061304b87838387613056565b979650505050505050565b606083156130c35782516000036130bc5761307085611f0e565b6130bc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610801565b50816125de565b6125de83838151156130d85781518083602001fd5b8060405162461bcd60e51b81526004016108019190613142565b60005b8381101561310d5781810151838201526020016130f5565b50506000910152565b6000815180845261312e8160208601602086016130f2565b601f01601f19169290920160200192915050565b6020815260006111f76020830184613116565b6020808252825182820181905260009190848201906040850190845b818110156131965783516001600160a01b031683529284019291840191600101613171565b50909695505050505050565b80356001600160a01b03811681146131b957600080fd5b919050565b8015158114612bf757600080fd5b6000806000606084860312156131e157600080fd5b6131ea846131a2565b925060208401356131fa816131be565b9150604084013561320a816131be565b809150509250925092565b6000806040838503121561322857600080fd5b613231836131a2565b946020939093013593505050565b60006020828403121561325157600080fd5b6111f7826131a2565b60008151808452602080850194506020840160005b8381101561328b5781518752958201959082019060010161326f565b509495945050505050565b6020815260006111f7602083018461325a565b600080600080608085870312156132bf57600080fd5b6132c8856131a2565b93506132d6602086016131a2565b93969395505050506040820135916060013590565b60008060006060848603121561330057600080fd5b613309846131a2565b9250613317602085016131a2565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261334e57600080fd5b81356001600160401b038082111561336857613368613327565b604051601f8301601f19908116603f0116810190828211818310171561339057613390613327565b816040528381528660208588010111156133a957600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156133dc57600080fd5b82356001600160401b03808211156133f357600080fd5b6133ff8683870161333d565b9350602085013591508082111561341557600080fd5b506134228582860161333d565b9150509250929050565b6001600160a01b0391909116815260200190565b600080600080600060a0868803121561345857600080fd5b613461866131a2565b945060208601359350613476604087016131a2565b925060608601359150608086013561348d816131be565b809150509295509295909350565b60ff60f81b8816815260e0602082015260006134ba60e0830189613116565b82810360408401526134cc8189613116565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506134fd818561325a565b9a9950505050505050505050565b634e487b7160e01b600052602160045260246000fd5b606081016002851061354357634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff81168114612bf757600080fd5b600080600080600080600060e0888a03121561358d57600080fd5b613596886131a2565b96506135a4602089016131a2565b9550604088013594506060880135935060808801356135c281613563565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156135f257600080fd5b6135fb836131a2565b9150613609602084016131a2565b90509250929050565b600181811c9082168061362657607f821691505b60208210810361258957634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b6000602082840312156136d257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108f0576108f06136d9565b634e487b7160e01b600052601260045260246000fd5b60008261372b5761372b613706565b500490565b60006020828403121561374257600080fd5b81516111f781613563565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03929092168252602082015260400190565b6001600160f81b0381811683821601908082111561090a5761090a6136d9565b808201808211156108f0576108f06136d9565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160f81b0382811682821603908082111561090a5761090a6136d9565b634e487b7160e01b600052600160045260246000fd5b60006001600160601b038381168061384a5761384a613706565b92169190910492915050565b60006020828403121561386857600080fd5b81516111f7816131be565b601f8211156108d7576000816000526020600020601f850160051c8101602086101561389c5750805b601f850160051c820191505b818110156138bb578281556001016138a8565b505050505050565b81516001600160401b038111156138dc576138dc613327565b6138f0816138ea8454613612565b84613873565b602080601f831160018114613925576000841561390d5750858301515b600019600386901b1c1916600185901b1785556138bb565b600085815260208120601f198616915b8281101561395457888601518255948401946001909101908401613935565b50858210156139725787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516139948184602087016130f2565b919091019291505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c7386a1655ba0f41119517e2188aee160b54b6d5486851d93467cef6644115c464736f6c63430008170033",
1068
+ "linkReferences": {},
1069
+ "deployedLinkReferences": {}
1070
+ }