@requestnetwork/smart-contracts 0.53.0 → 0.53.1-next.6df923e2.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 (207) hide show
  1. package/README.md +1 -1
  2. package/dist/scripts-create2/compute-one-address.d.ts.map +1 -1
  3. package/dist/scripts-create2/compute-one-address.js +4 -0
  4. package/dist/scripts-create2/compute-one-address.js.map +1 -1
  5. package/dist/scripts-create2/deploy.d.ts +4 -1
  6. package/dist/scripts-create2/deploy.d.ts.map +1 -1
  7. package/dist/scripts-create2/deploy.js +11 -4
  8. package/dist/scripts-create2/deploy.js.map +1 -1
  9. package/dist/scripts-create2/verify.d.ts.map +1 -1
  10. package/dist/scripts-create2/verify.js +5 -2
  11. package/dist/scripts-create2/verify.js.map +1 -1
  12. package/dist/scripts-create2/xdeployer.d.ts.map +1 -1
  13. package/dist/scripts-create2/xdeployer.js +11 -1
  14. package/dist/scripts-create2/xdeployer.js.map +1 -1
  15. package/dist/src/lib/artifacts/BatchConversionPayments/0.2.0.json +766 -0
  16. package/dist/src/lib/artifacts/BatchConversionPayments/index.d.ts.map +1 -1
  17. package/dist/src/lib/artifacts/BatchConversionPayments/index.js +10 -0
  18. package/dist/src/lib/artifacts/BatchConversionPayments/index.js.map +1 -1
  19. package/dist/src/lib/artifacts/ERC20RecurringPaymentProxy/0.2.0.json +531 -0
  20. package/dist/src/lib/artifacts/ERC20RecurringPaymentProxy/index.d.ts +2 -2
  21. package/dist/src/lib/artifacts/ERC20RecurringPaymentProxy/index.d.ts.map +1 -1
  22. package/dist/src/lib/artifacts/ERC20RecurringPaymentProxy/index.js +5 -0
  23. package/dist/src/lib/artifacts/ERC20RecurringPaymentProxy/index.js.map +1 -1
  24. package/dist/src/types/@openzeppelin/contracts/interfaces/IERC1271.d.ts +45 -0
  25. package/dist/src/types/@openzeppelin/contracts/interfaces/IERC1271.d.ts.map +1 -0
  26. package/dist/src/types/@openzeppelin/contracts/interfaces/IERC1271.js +3 -0
  27. package/dist/src/types/@openzeppelin/contracts/interfaces/IERC1271.js.map +1 -0
  28. package/dist/src/types/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  29. package/dist/src/types/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  30. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.d.ts +27 -0
  31. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.d.ts.map +1 -0
  32. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.js +44 -0
  33. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.js.map +1 -0
  34. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  35. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  36. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/index.js +3 -1
  37. package/dist/src/types/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -1
  38. package/dist/src/types/factories/src/contracts/BatchConversionPayments__factory.d.ts +15 -1
  39. package/dist/src/types/factories/src/contracts/BatchConversionPayments__factory.d.ts.map +1 -1
  40. package/dist/src/types/factories/src/contracts/BatchConversionPayments__factory.js +19 -1
  41. package/dist/src/types/factories/src/contracts/BatchConversionPayments__factory.js.map +1 -1
  42. package/dist/src/types/factories/src/contracts/BatchNoConversionPayments__factory.d.ts +15 -1
  43. package/dist/src/types/factories/src/contracts/BatchNoConversionPayments__factory.d.ts.map +1 -1
  44. package/dist/src/types/factories/src/contracts/BatchNoConversionPayments__factory.js +19 -1
  45. package/dist/src/types/factories/src/contracts/BatchNoConversionPayments__factory.js.map +1 -1
  46. package/dist/src/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.d.ts +549 -71
  47. package/dist/src/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.d.ts.map +1 -1
  48. package/dist/src/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.js +695 -79
  49. package/dist/src/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.js.map +1 -1
  50. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.d.ts +255 -0
  51. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.d.ts.map +1 -0
  52. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.js +350 -0
  53. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.js.map +1 -0
  54. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.d.ts +235 -0
  55. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.d.ts.map +1 -0
  56. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.js +324 -0
  57. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.js.map +1 -0
  58. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.d.ts +235 -0
  59. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.d.ts.map +1 -0
  60. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.js +324 -0
  61. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.js.map +1 -0
  62. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.d.ts +235 -0
  63. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.d.ts.map +1 -0
  64. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.js +324 -0
  65. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.js.map +1 -0
  66. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts +5 -0
  67. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts.map +1 -0
  68. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.js +15 -0
  69. package/dist/src/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.js.map +1 -0
  70. package/dist/src/types/factories/src/contracts/test/MockERC1271__factory.d.ts +75 -0
  71. package/dist/src/types/factories/src/contracts/test/MockERC1271__factory.d.ts.map +1 -0
  72. package/dist/src/types/factories/src/contracts/test/MockERC1271__factory.js +114 -0
  73. package/dist/src/types/factories/src/contracts/test/MockERC1271__factory.js.map +1 -0
  74. package/dist/src/types/factories/src/contracts/test/index.d.ts +2 -0
  75. package/dist/src/types/factories/src/contracts/test/index.d.ts.map +1 -1
  76. package/dist/src/types/factories/src/contracts/test/index.js +4 -1
  77. package/dist/src/types/factories/src/contracts/test/index.js.map +1 -1
  78. package/dist/src/types/hardhat.d.ts +54 -0
  79. package/dist/src/types/index.d.ts +12 -0
  80. package/dist/src/types/index.d.ts.map +1 -1
  81. package/dist/src/types/index.js +14 -2
  82. package/dist/src/types/index.js.map +1 -1
  83. package/dist/src/types/src/contracts/BatchConversionPayments.d.ts +17 -1
  84. package/dist/src/types/src/contracts/BatchConversionPayments.d.ts.map +1 -1
  85. package/dist/src/types/src/contracts/BatchNoConversionPayments.d.ts +17 -1
  86. package/dist/src/types/src/contracts/BatchNoConversionPayments.d.ts.map +1 -1
  87. package/dist/src/types/src/contracts/ERC20RecurringPaymentProxy.d.ts +280 -101
  88. package/dist/src/types/src/contracts/ERC20RecurringPaymentProxy.d.ts.map +1 -1
  89. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.d.ts +219 -0
  90. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.d.ts.map +1 -0
  91. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.js +3 -0
  92. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.js.map +1 -0
  93. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.d.ts +187 -0
  94. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.d.ts.map +1 -0
  95. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.js +3 -0
  96. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.js.map +1 -0
  97. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.d.ts +195 -0
  98. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.d.ts.map +1 -0
  99. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.js +3 -0
  100. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.js.map +1 -0
  101. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.d.ts +195 -0
  102. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.d.ts.map +1 -0
  103. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.js +3 -0
  104. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.js.map +1 -0
  105. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts +5 -0
  106. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts.map +1 -0
  107. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/index.js +3 -0
  108. package/dist/src/types/src/contracts/test/ERC20PullTestTokens.sol/index.js.map +1 -0
  109. package/dist/src/types/src/contracts/test/MockERC1271.d.ts +67 -0
  110. package/dist/src/types/src/contracts/test/MockERC1271.d.ts.map +1 -0
  111. package/dist/src/types/src/contracts/test/MockERC1271.js +3 -0
  112. package/dist/src/types/src/contracts/test/MockERC1271.js.map +1 -0
  113. package/dist/src/types/src/contracts/test/index.d.ts +3 -0
  114. package/dist/src/types/src/contracts/test/index.d.ts.map +1 -1
  115. package/dist/tsconfig.build.tsbuildinfo +1 -1
  116. package/package.json +5 -6
  117. package/types/@openzeppelin/contracts/interfaces/IERC1271.d.ts +45 -0
  118. package/types/@openzeppelin/contracts/interfaces/IERC1271.d.ts.map +1 -0
  119. package/types/@openzeppelin/contracts/interfaces/IERC1271.js +3 -0
  120. package/types/@openzeppelin/contracts/interfaces/IERC1271.js.map +1 -0
  121. package/types/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  122. package/types/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  123. package/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.d.ts +27 -0
  124. package/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.d.ts.map +1 -0
  125. package/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.js +44 -0
  126. package/types/factories/@openzeppelin/contracts/interfaces/IERC1271__factory.js.map +1 -0
  127. package/types/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  128. package/types/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  129. package/types/factories/@openzeppelin/contracts/interfaces/index.js +3 -1
  130. package/types/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -1
  131. package/types/factories/src/contracts/BatchConversionPayments__factory.d.ts +15 -1
  132. package/types/factories/src/contracts/BatchConversionPayments__factory.d.ts.map +1 -1
  133. package/types/factories/src/contracts/BatchConversionPayments__factory.js +19 -1
  134. package/types/factories/src/contracts/BatchConversionPayments__factory.js.map +1 -1
  135. package/types/factories/src/contracts/BatchNoConversionPayments__factory.d.ts +15 -1
  136. package/types/factories/src/contracts/BatchNoConversionPayments__factory.d.ts.map +1 -1
  137. package/types/factories/src/contracts/BatchNoConversionPayments__factory.js +19 -1
  138. package/types/factories/src/contracts/BatchNoConversionPayments__factory.js.map +1 -1
  139. package/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.d.ts +549 -71
  140. package/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.d.ts.map +1 -1
  141. package/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.js +695 -79
  142. package/types/factories/src/contracts/ERC20RecurringPaymentProxy__factory.js.map +1 -1
  143. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.d.ts +255 -0
  144. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.d.ts.map +1 -0
  145. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.js +350 -0
  146. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient__factory.js.map +1 -0
  147. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.d.ts +235 -0
  148. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.d.ts.map +1 -0
  149. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.js +324 -0
  150. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer__factory.js.map +1 -0
  151. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.d.ts +235 -0
  152. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.d.ts.map +1 -0
  153. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.js +324 -0
  154. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer__factory.js.map +1 -0
  155. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.d.ts +235 -0
  156. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.d.ts.map +1 -0
  157. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.js +324 -0
  158. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail__factory.js.map +1 -0
  159. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts +5 -0
  160. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts.map +1 -0
  161. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.js +15 -0
  162. package/types/factories/src/contracts/test/ERC20PullTestTokens.sol/index.js.map +1 -0
  163. package/types/factories/src/contracts/test/MockERC1271__factory.d.ts +75 -0
  164. package/types/factories/src/contracts/test/MockERC1271__factory.d.ts.map +1 -0
  165. package/types/factories/src/contracts/test/MockERC1271__factory.js +114 -0
  166. package/types/factories/src/contracts/test/MockERC1271__factory.js.map +1 -0
  167. package/types/factories/src/contracts/test/index.d.ts +2 -0
  168. package/types/factories/src/contracts/test/index.d.ts.map +1 -1
  169. package/types/factories/src/contracts/test/index.js +4 -1
  170. package/types/factories/src/contracts/test/index.js.map +1 -1
  171. package/types/hardhat.d.ts +54 -0
  172. package/types/index.d.ts +12 -0
  173. package/types/index.d.ts.map +1 -1
  174. package/types/index.js +14 -2
  175. package/types/index.js.map +1 -1
  176. package/types/src/contracts/BatchConversionPayments.d.ts +17 -1
  177. package/types/src/contracts/BatchConversionPayments.d.ts.map +1 -1
  178. package/types/src/contracts/BatchNoConversionPayments.d.ts +17 -1
  179. package/types/src/contracts/BatchNoConversionPayments.d.ts.map +1 -1
  180. package/types/src/contracts/ERC20RecurringPaymentProxy.d.ts +280 -101
  181. package/types/src/contracts/ERC20RecurringPaymentProxy.d.ts.map +1 -1
  182. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.d.ts +219 -0
  183. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.d.ts.map +1 -0
  184. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.js +3 -0
  185. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20BlockRecipient.js.map +1 -0
  186. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.d.ts +187 -0
  187. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.d.ts.map +1 -0
  188. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.js +3 -0
  189. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FailTransfer.js.map +1 -0
  190. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.d.ts +195 -0
  191. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.d.ts.map +1 -0
  192. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.js +3 -0
  193. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20FeeOnTransfer.js.map +1 -0
  194. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.d.ts +195 -0
  195. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.d.ts.map +1 -0
  196. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.js +3 -0
  197. package/types/src/contracts/test/ERC20PullTestTokens.sol/ERC20SilentFail.js.map +1 -0
  198. package/types/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts +5 -0
  199. package/types/src/contracts/test/ERC20PullTestTokens.sol/index.d.ts.map +1 -0
  200. package/types/src/contracts/test/ERC20PullTestTokens.sol/index.js +3 -0
  201. package/types/src/contracts/test/ERC20PullTestTokens.sol/index.js.map +1 -0
  202. package/types/src/contracts/test/MockERC1271.d.ts +67 -0
  203. package/types/src/contracts/test/MockERC1271.d.ts.map +1 -0
  204. package/types/src/contracts/test/MockERC1271.js +3 -0
  205. package/types/src/contracts/test/MockERC1271.js.map +1 -0
  206. package/types/src/contracts/test/index.d.ts +3 -0
  207. package/types/src/contracts/test/index.d.ts.map +1 -1
@@ -37,6 +37,21 @@ const _abi = [
37
37
  name: "ERC20RecurringPaymentProxy__BadSignature",
38
38
  type: "error",
39
39
  },
40
+ {
41
+ inputs: [],
42
+ name: "ERC20RecurringPaymentProxy__Cancelled",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [],
47
+ name: "ERC20RecurringPaymentProxy__DuplicatePaymentReference",
48
+ type: "error",
49
+ },
50
+ {
51
+ inputs: [],
52
+ name: "ERC20RecurringPaymentProxy__EmptyLegs",
53
+ type: "error",
54
+ },
40
55
  {
41
56
  inputs: [],
42
57
  name: "ERC20RecurringPaymentProxy__IndexOutOfBounds",
@@ -44,7 +59,12 @@ const _abi = [
44
59
  },
45
60
  {
46
61
  inputs: [],
47
- name: "ERC20RecurringPaymentProxy__IndexTooLarge",
62
+ name: "ERC20RecurringPaymentProxy__InvalidDueTimes",
63
+ type: "error",
64
+ },
65
+ {
66
+ inputs: [],
67
+ name: "ERC20RecurringPaymentProxy__NotAdmitted",
48
68
  type: "error",
49
69
  },
50
70
  {
@@ -52,21 +72,61 @@ const _abi = [
52
72
  name: "ERC20RecurringPaymentProxy__NotDueYet",
53
73
  type: "error",
54
74
  },
75
+ {
76
+ inputs: [],
77
+ name: "ERC20RecurringPaymentProxy__NotRelayer",
78
+ type: "error",
79
+ },
80
+ {
81
+ inputs: [],
82
+ name: "ERC20RecurringPaymentProxy__NotSubscriber",
83
+ type: "error",
84
+ },
55
85
  {
56
86
  inputs: [],
57
87
  name: "ERC20RecurringPaymentProxy__PaymentOutOfOrder",
58
88
  type: "error",
59
89
  },
90
+ {
91
+ inputs: [],
92
+ name: "ERC20RecurringPaymentProxy__ShortPull",
93
+ type: "error",
94
+ },
60
95
  {
61
96
  inputs: [],
62
97
  name: "ERC20RecurringPaymentProxy__SignatureExpired",
63
98
  type: "error",
64
99
  },
100
+ {
101
+ inputs: [],
102
+ name: "ERC20RecurringPaymentProxy__TooManyLegs",
103
+ type: "error",
104
+ },
105
+ {
106
+ inputs: [],
107
+ name: "ERC20RecurringPaymentProxy__TransferFailed",
108
+ type: "error",
109
+ },
110
+ {
111
+ inputs: [],
112
+ name: "ERC20RecurringPaymentProxy__UnexpectedBalance",
113
+ type: "error",
114
+ },
65
115
  {
66
116
  inputs: [],
67
117
  name: "ERC20RecurringPaymentProxy__ZeroAddress",
68
118
  type: "error",
69
119
  },
120
+ {
121
+ inputs: [],
122
+ name: "ERC20RecurringPaymentProxy__ZeroAmount",
123
+ type: "error",
124
+ },
125
+ {
126
+ inputs: [],
127
+ name: "ERC20RecurringPaymentProxy__ZeroScheduleId",
128
+ type: "error",
129
+ },
70
130
  {
71
131
  inputs: [],
72
132
  name: "InvalidShortString",
@@ -83,6 +143,44 @@ const _abi = [
83
143
  name: "StringTooLong",
84
144
  type: "error",
85
145
  },
146
+ {
147
+ anonymous: false,
148
+ inputs: [
149
+ {
150
+ indexed: true,
151
+ internalType: "bytes32",
152
+ name: "scheduleKey",
153
+ type: "bytes32",
154
+ },
155
+ {
156
+ indexed: false,
157
+ internalType: "uint256",
158
+ name: "mask",
159
+ type: "uint256",
160
+ },
161
+ ],
162
+ name: "CyclesAdmitted",
163
+ type: "event",
164
+ },
165
+ {
166
+ anonymous: false,
167
+ inputs: [
168
+ {
169
+ indexed: true,
170
+ internalType: "bytes32",
171
+ name: "scheduleKey",
172
+ type: "bytes32",
173
+ },
174
+ {
175
+ indexed: false,
176
+ internalType: "uint256",
177
+ name: "mask",
178
+ type: "uint256",
179
+ },
180
+ ],
181
+ name: "CyclesRevoked",
182
+ type: "event",
183
+ },
86
184
  {
87
185
  anonymous: false,
88
186
  inputs: [],
@@ -95,17 +193,17 @@ const _abi = [
95
193
  {
96
194
  indexed: true,
97
195
  internalType: "address",
98
- name: "previousOwner",
196
+ name: "oldProxy",
99
197
  type: "address",
100
198
  },
101
199
  {
102
200
  indexed: true,
103
201
  internalType: "address",
104
- name: "newOwner",
202
+ name: "newProxy",
105
203
  type: "address",
106
204
  },
107
205
  ],
108
- name: "OwnershipTransferred",
206
+ name: "FeeProxyUpdated",
109
207
  type: "event",
110
208
  },
111
209
  {
@@ -121,6 +219,43 @@ const _abi = [
121
219
  name: "Paused",
122
220
  type: "event",
123
221
  },
222
+ {
223
+ anonymous: false,
224
+ inputs: [
225
+ {
226
+ indexed: true,
227
+ internalType: "bytes32",
228
+ name: "scheduleKey",
229
+ type: "bytes32",
230
+ },
231
+ {
232
+ indexed: true,
233
+ internalType: "address",
234
+ name: "subscriber",
235
+ type: "address",
236
+ },
237
+ {
238
+ indexed: false,
239
+ internalType: "address",
240
+ name: "token",
241
+ type: "address",
242
+ },
243
+ {
244
+ indexed: false,
245
+ internalType: "uint8",
246
+ name: "index",
247
+ type: "uint8",
248
+ },
249
+ {
250
+ indexed: false,
251
+ internalType: "uint256",
252
+ name: "payerTotal",
253
+ type: "uint256",
254
+ },
255
+ ],
256
+ name: "PaymentTriggered",
257
+ type: "event",
258
+ },
124
259
  {
125
260
  anonymous: false,
126
261
  inputs: [
@@ -196,6 +331,25 @@ const _abi = [
196
331
  name: "RoleRevoked",
197
332
  type: "event",
198
333
  },
334
+ {
335
+ anonymous: false,
336
+ inputs: [
337
+ {
338
+ indexed: true,
339
+ internalType: "bytes32",
340
+ name: "scheduleKey",
341
+ type: "bytes32",
342
+ },
343
+ {
344
+ indexed: true,
345
+ internalType: "address",
346
+ name: "subscriber",
347
+ type: "address",
348
+ },
349
+ ],
350
+ name: "ScheduleCancelled",
351
+ type: "event",
352
+ },
199
353
  {
200
354
  anonymous: false,
201
355
  inputs: [
@@ -222,6 +376,19 @@ const _abi = [
222
376
  stateMutability: "view",
223
377
  type: "function",
224
378
  },
379
+ {
380
+ inputs: [],
381
+ name: "MAX_LEGS",
382
+ outputs: [
383
+ {
384
+ internalType: "uint8",
385
+ name: "",
386
+ type: "uint8",
387
+ },
388
+ ],
389
+ stateMutability: "view",
390
+ type: "function",
391
+ },
225
392
  {
226
393
  inputs: [],
227
394
  name: "RELAYER_ROLE",
@@ -235,6 +402,166 @@ const _abi = [
235
402
  stateMutability: "view",
236
403
  type: "function",
237
404
  },
405
+ {
406
+ inputs: [
407
+ {
408
+ internalType: "bytes32",
409
+ name: "scheduleKey",
410
+ type: "bytes32",
411
+ },
412
+ {
413
+ internalType: "uint256",
414
+ name: "mask",
415
+ type: "uint256",
416
+ },
417
+ ],
418
+ name: "admitCycles",
419
+ outputs: [],
420
+ stateMutability: "nonpayable",
421
+ type: "function",
422
+ },
423
+ {
424
+ inputs: [
425
+ {
426
+ internalType: "bytes32",
427
+ name: "scheduleKey",
428
+ type: "bytes32",
429
+ },
430
+ ],
431
+ name: "admittedCycles",
432
+ outputs: [
433
+ {
434
+ internalType: "uint256",
435
+ name: "",
436
+ type: "uint256",
437
+ },
438
+ ],
439
+ stateMutability: "view",
440
+ type: "function",
441
+ },
442
+ {
443
+ inputs: [
444
+ {
445
+ components: [
446
+ {
447
+ internalType: "address",
448
+ name: "subscriber",
449
+ type: "address",
450
+ },
451
+ {
452
+ internalType: "address",
453
+ name: "token",
454
+ type: "address",
455
+ },
456
+ {
457
+ internalType: "uint128",
458
+ name: "relayerFee",
459
+ type: "uint128",
460
+ },
461
+ {
462
+ internalType: "uint8",
463
+ name: "totalPayments",
464
+ type: "uint8",
465
+ },
466
+ {
467
+ internalType: "uint256",
468
+ name: "nonce",
469
+ type: "uint256",
470
+ },
471
+ {
472
+ internalType: "uint256",
473
+ name: "deadline",
474
+ type: "uint256",
475
+ },
476
+ {
477
+ internalType: "bool",
478
+ name: "strictOrder",
479
+ type: "bool",
480
+ },
481
+ {
482
+ internalType: "bytes32",
483
+ name: "scheduleId",
484
+ type: "bytes32",
485
+ },
486
+ {
487
+ internalType: "uint32[]",
488
+ name: "dueTimes",
489
+ type: "uint32[]",
490
+ },
491
+ {
492
+ components: [
493
+ {
494
+ internalType: "address",
495
+ name: "recipient",
496
+ type: "address",
497
+ },
498
+ {
499
+ internalType: "uint128",
500
+ name: "amount",
501
+ type: "uint128",
502
+ },
503
+ {
504
+ internalType: "bytes8",
505
+ name: "paymentReference",
506
+ type: "bytes8",
507
+ },
508
+ ],
509
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
510
+ name: "initialLegs",
511
+ type: "tuple[]",
512
+ },
513
+ {
514
+ components: [
515
+ {
516
+ internalType: "address",
517
+ name: "recipient",
518
+ type: "address",
519
+ },
520
+ {
521
+ internalType: "uint128",
522
+ name: "amount",
523
+ type: "uint128",
524
+ },
525
+ {
526
+ internalType: "bytes8",
527
+ name: "paymentReference",
528
+ type: "bytes8",
529
+ },
530
+ ],
531
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
532
+ name: "recurringLegs",
533
+ type: "tuple[]",
534
+ },
535
+ ],
536
+ internalType: "struct ERC20RecurringPaymentProxy.SchedulePermitBatch",
537
+ name: "p",
538
+ type: "tuple",
539
+ },
540
+ ],
541
+ name: "cancelScheduleBatch",
542
+ outputs: [],
543
+ stateMutability: "nonpayable",
544
+ type: "function",
545
+ },
546
+ {
547
+ inputs: [
548
+ {
549
+ internalType: "bytes32",
550
+ name: "scheduleKey",
551
+ type: "bytes32",
552
+ },
553
+ ],
554
+ name: "cancelledSchedules",
555
+ outputs: [
556
+ {
557
+ internalType: "bool",
558
+ name: "",
559
+ type: "bool",
560
+ },
561
+ ],
562
+ stateMutability: "view",
563
+ type: "function",
564
+ },
238
565
  {
239
566
  inputs: [],
240
567
  name: "eip712Domain",
@@ -310,6 +637,19 @@ const _abi = [
310
637
  stateMutability: "view",
311
638
  type: "function",
312
639
  },
640
+ {
641
+ inputs: [
642
+ {
643
+ internalType: "address",
644
+ name: "relayer",
645
+ type: "address",
646
+ },
647
+ ],
648
+ name: "grantRelayer",
649
+ outputs: [],
650
+ stateMutability: "nonpayable",
651
+ type: "function",
652
+ },
313
653
  {
314
654
  inputs: [
315
655
  {
@@ -355,30 +695,127 @@ const _abi = [
355
695
  {
356
696
  inputs: [
357
697
  {
358
- internalType: "bytes32",
359
- name: "",
360
- type: "bytes32",
698
+ components: [
699
+ {
700
+ internalType: "address",
701
+ name: "subscriber",
702
+ type: "address",
703
+ },
704
+ {
705
+ internalType: "address",
706
+ name: "token",
707
+ type: "address",
708
+ },
709
+ {
710
+ internalType: "uint128",
711
+ name: "relayerFee",
712
+ type: "uint128",
713
+ },
714
+ {
715
+ internalType: "uint8",
716
+ name: "totalPayments",
717
+ type: "uint8",
718
+ },
719
+ {
720
+ internalType: "uint256",
721
+ name: "nonce",
722
+ type: "uint256",
723
+ },
724
+ {
725
+ internalType: "uint256",
726
+ name: "deadline",
727
+ type: "uint256",
728
+ },
729
+ {
730
+ internalType: "bool",
731
+ name: "strictOrder",
732
+ type: "bool",
733
+ },
734
+ {
735
+ internalType: "bytes32",
736
+ name: "scheduleId",
737
+ type: "bytes32",
738
+ },
739
+ {
740
+ internalType: "uint32[]",
741
+ name: "dueTimes",
742
+ type: "uint32[]",
743
+ },
744
+ {
745
+ components: [
746
+ {
747
+ internalType: "address",
748
+ name: "recipient",
749
+ type: "address",
750
+ },
751
+ {
752
+ internalType: "uint128",
753
+ name: "amount",
754
+ type: "uint128",
755
+ },
756
+ {
757
+ internalType: "bytes8",
758
+ name: "paymentReference",
759
+ type: "bytes8",
760
+ },
761
+ ],
762
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
763
+ name: "initialLegs",
764
+ type: "tuple[]",
765
+ },
766
+ {
767
+ components: [
768
+ {
769
+ internalType: "address",
770
+ name: "recipient",
771
+ type: "address",
772
+ },
773
+ {
774
+ internalType: "uint128",
775
+ name: "amount",
776
+ type: "uint128",
777
+ },
778
+ {
779
+ internalType: "bytes8",
780
+ name: "paymentReference",
781
+ type: "bytes8",
782
+ },
783
+ ],
784
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
785
+ name: "recurringLegs",
786
+ type: "tuple[]",
787
+ },
788
+ ],
789
+ internalType: "struct ERC20RecurringPaymentProxy.SchedulePermitBatch",
790
+ name: "p",
791
+ type: "tuple",
361
792
  },
362
793
  ],
363
- name: "lastPaymentIndex",
794
+ name: "hashScheduleBatch",
364
795
  outputs: [
365
796
  {
366
- internalType: "uint8",
797
+ internalType: "bytes32",
367
798
  name: "",
368
- type: "uint8",
799
+ type: "bytes32",
369
800
  },
370
801
  ],
371
802
  stateMutability: "view",
372
803
  type: "function",
373
804
  },
374
805
  {
375
- inputs: [],
376
- name: "owner",
806
+ inputs: [
807
+ {
808
+ internalType: "bytes32",
809
+ name: "scheduleKey",
810
+ type: "bytes32",
811
+ },
812
+ ],
813
+ name: "lastPaymentIndex",
377
814
  outputs: [
378
815
  {
379
- internalType: "address",
816
+ internalType: "uint8",
380
817
  name: "",
381
- type: "address",
818
+ type: "uint8",
382
819
  },
383
820
  ],
384
821
  stateMutability: "view",
@@ -404,13 +841,6 @@ const _abi = [
404
841
  stateMutability: "view",
405
842
  type: "function",
406
843
  },
407
- {
408
- inputs: [],
409
- name: "renounceOwnership",
410
- outputs: [],
411
- stateMutability: "nonpayable",
412
- type: "function",
413
- },
414
844
  {
415
845
  inputs: [
416
846
  {
@@ -432,17 +862,22 @@ const _abi = [
432
862
  {
433
863
  inputs: [
434
864
  {
435
- internalType: "bytes32",
436
- name: "role",
437
- type: "bytes32",
865
+ internalType: "address",
866
+ name: "token",
867
+ type: "address",
438
868
  },
439
869
  {
440
870
  internalType: "address",
441
- name: "account",
871
+ name: "to",
442
872
  type: "address",
443
873
  },
874
+ {
875
+ internalType: "uint256",
876
+ name: "amount",
877
+ type: "uint256",
878
+ },
444
879
  ],
445
- name: "revokeRole",
880
+ name: "rescueTokens",
446
881
  outputs: [],
447
882
  stateMutability: "nonpayable",
448
883
  type: "function",
@@ -450,12 +885,17 @@ const _abi = [
450
885
  {
451
886
  inputs: [
452
887
  {
453
- internalType: "address",
454
- name: "newProxy",
455
- type: "address",
888
+ internalType: "bytes32",
889
+ name: "scheduleKey",
890
+ type: "bytes32",
891
+ },
892
+ {
893
+ internalType: "uint256",
894
+ name: "mask",
895
+ type: "uint256",
456
896
  },
457
897
  ],
458
- name: "setFeeProxy",
898
+ name: "revokeCycles",
459
899
  outputs: [],
460
900
  stateMutability: "nonpayable",
461
901
  type: "function",
@@ -464,16 +904,29 @@ const _abi = [
464
904
  inputs: [
465
905
  {
466
906
  internalType: "address",
467
- name: "oldRelayer",
907
+ name: "relayer",
468
908
  type: "address",
469
909
  },
910
+ ],
911
+ name: "revokeRelayer",
912
+ outputs: [],
913
+ stateMutability: "nonpayable",
914
+ type: "function",
915
+ },
916
+ {
917
+ inputs: [
918
+ {
919
+ internalType: "bytes32",
920
+ name: "role",
921
+ type: "bytes32",
922
+ },
470
923
  {
471
924
  internalType: "address",
472
- name: "newRelayer",
925
+ name: "account",
473
926
  type: "address",
474
927
  },
475
928
  ],
476
- name: "setRelayer",
929
+ name: "revokeRole",
477
930
  outputs: [],
478
931
  stateMutability: "nonpayable",
479
932
  type: "function",
@@ -481,16 +934,141 @@ const _abi = [
481
934
  {
482
935
  inputs: [
483
936
  {
484
- internalType: "bytes4",
485
- name: "interfaceId",
486
- type: "bytes4",
937
+ components: [
938
+ {
939
+ internalType: "address",
940
+ name: "subscriber",
941
+ type: "address",
942
+ },
943
+ {
944
+ internalType: "address",
945
+ name: "token",
946
+ type: "address",
947
+ },
948
+ {
949
+ internalType: "uint128",
950
+ name: "relayerFee",
951
+ type: "uint128",
952
+ },
953
+ {
954
+ internalType: "uint8",
955
+ name: "totalPayments",
956
+ type: "uint8",
957
+ },
958
+ {
959
+ internalType: "uint256",
960
+ name: "nonce",
961
+ type: "uint256",
962
+ },
963
+ {
964
+ internalType: "uint256",
965
+ name: "deadline",
966
+ type: "uint256",
967
+ },
968
+ {
969
+ internalType: "bool",
970
+ name: "strictOrder",
971
+ type: "bool",
972
+ },
973
+ {
974
+ internalType: "bytes32",
975
+ name: "scheduleId",
976
+ type: "bytes32",
977
+ },
978
+ {
979
+ internalType: "uint32[]",
980
+ name: "dueTimes",
981
+ type: "uint32[]",
982
+ },
983
+ {
984
+ components: [
985
+ {
986
+ internalType: "address",
987
+ name: "recipient",
988
+ type: "address",
989
+ },
990
+ {
991
+ internalType: "uint128",
992
+ name: "amount",
993
+ type: "uint128",
994
+ },
995
+ {
996
+ internalType: "bytes8",
997
+ name: "paymentReference",
998
+ type: "bytes8",
999
+ },
1000
+ ],
1001
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
1002
+ name: "initialLegs",
1003
+ type: "tuple[]",
1004
+ },
1005
+ {
1006
+ components: [
1007
+ {
1008
+ internalType: "address",
1009
+ name: "recipient",
1010
+ type: "address",
1011
+ },
1012
+ {
1013
+ internalType: "uint128",
1014
+ name: "amount",
1015
+ type: "uint128",
1016
+ },
1017
+ {
1018
+ internalType: "bytes8",
1019
+ name: "paymentReference",
1020
+ type: "bytes8",
1021
+ },
1022
+ ],
1023
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
1024
+ name: "recurringLegs",
1025
+ type: "tuple[]",
1026
+ },
1027
+ ],
1028
+ internalType: "struct ERC20RecurringPaymentProxy.SchedulePermitBatch",
1029
+ name: "p",
1030
+ type: "tuple",
487
1031
  },
488
1032
  ],
489
- name: "supportsInterface",
1033
+ name: "scheduleKeyFromBatch",
490
1034
  outputs: [
491
1035
  {
492
- internalType: "bool",
1036
+ internalType: "bytes32",
493
1037
  name: "",
1038
+ type: "bytes32",
1039
+ },
1040
+ ],
1041
+ stateMutability: "pure",
1042
+ type: "function",
1043
+ },
1044
+ {
1045
+ inputs: [
1046
+ {
1047
+ internalType: "bytes32",
1048
+ name: "",
1049
+ type: "bytes32",
1050
+ },
1051
+ ],
1052
+ name: "schedules",
1053
+ outputs: [
1054
+ {
1055
+ internalType: "uint256",
1056
+ name: "bitmap",
1057
+ type: "uint256",
1058
+ },
1059
+ {
1060
+ internalType: "uint256",
1061
+ name: "admitted",
1062
+ type: "uint256",
1063
+ },
1064
+ {
1065
+ internalType: "uint8",
1066
+ name: "lastIndex",
1067
+ type: "uint8",
1068
+ },
1069
+ {
1070
+ internalType: "bool",
1071
+ name: "cancelled",
494
1072
  type: "bool",
495
1073
  },
496
1074
  ],
@@ -501,15 +1079,34 @@ const _abi = [
501
1079
  inputs: [
502
1080
  {
503
1081
  internalType: "address",
504
- name: "newOwner",
1082
+ name: "newProxy",
505
1083
  type: "address",
506
1084
  },
507
1085
  ],
508
- name: "transferOwnership",
1086
+ name: "setFeeProxy",
509
1087
  outputs: [],
510
1088
  stateMutability: "nonpayable",
511
1089
  type: "function",
512
1090
  },
1091
+ {
1092
+ inputs: [
1093
+ {
1094
+ internalType: "bytes4",
1095
+ name: "interfaceId",
1096
+ type: "bytes4",
1097
+ },
1098
+ ],
1099
+ name: "supportsInterface",
1100
+ outputs: [
1101
+ {
1102
+ internalType: "bool",
1103
+ name: "",
1104
+ type: "bool",
1105
+ },
1106
+ ],
1107
+ stateMutability: "view",
1108
+ type: "function",
1109
+ },
513
1110
  {
514
1111
  inputs: [
515
1112
  {
@@ -524,41 +1121,11 @@ const _abi = [
524
1121
  name: "token",
525
1122
  type: "address",
526
1123
  },
527
- {
528
- internalType: "address",
529
- name: "recipient",
530
- type: "address",
531
- },
532
- {
533
- internalType: "address",
534
- name: "feeAddress",
535
- type: "address",
536
- },
537
- {
538
- internalType: "uint128",
539
- name: "amount",
540
- type: "uint128",
541
- },
542
- {
543
- internalType: "uint128",
544
- name: "feeAmount",
545
- type: "uint128",
546
- },
547
1124
  {
548
1125
  internalType: "uint128",
549
1126
  name: "relayerFee",
550
1127
  type: "uint128",
551
1128
  },
552
- {
553
- internalType: "uint32",
554
- name: "periodSeconds",
555
- type: "uint32",
556
- },
557
- {
558
- internalType: "uint32",
559
- name: "firstPayment",
560
- type: "uint32",
561
- },
562
1129
  {
563
1130
  internalType: "uint8",
564
1131
  name: "totalPayments",
@@ -579,8 +1146,62 @@ const _abi = [
579
1146
  name: "strictOrder",
580
1147
  type: "bool",
581
1148
  },
1149
+ {
1150
+ internalType: "bytes32",
1151
+ name: "scheduleId",
1152
+ type: "bytes32",
1153
+ },
1154
+ {
1155
+ internalType: "uint32[]",
1156
+ name: "dueTimes",
1157
+ type: "uint32[]",
1158
+ },
1159
+ {
1160
+ components: [
1161
+ {
1162
+ internalType: "address",
1163
+ name: "recipient",
1164
+ type: "address",
1165
+ },
1166
+ {
1167
+ internalType: "uint128",
1168
+ name: "amount",
1169
+ type: "uint128",
1170
+ },
1171
+ {
1172
+ internalType: "bytes8",
1173
+ name: "paymentReference",
1174
+ type: "bytes8",
1175
+ },
1176
+ ],
1177
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
1178
+ name: "initialLegs",
1179
+ type: "tuple[]",
1180
+ },
1181
+ {
1182
+ components: [
1183
+ {
1184
+ internalType: "address",
1185
+ name: "recipient",
1186
+ type: "address",
1187
+ },
1188
+ {
1189
+ internalType: "uint128",
1190
+ name: "amount",
1191
+ type: "uint128",
1192
+ },
1193
+ {
1194
+ internalType: "bytes8",
1195
+ name: "paymentReference",
1196
+ type: "bytes8",
1197
+ },
1198
+ ],
1199
+ internalType: "struct ERC20RecurringPaymentProxy.Leg[]",
1200
+ name: "recurringLegs",
1201
+ type: "tuple[]",
1202
+ },
582
1203
  ],
583
- internalType: "struct ERC20RecurringPaymentProxy.SchedulePermit",
1204
+ internalType: "struct ERC20RecurringPaymentProxy.SchedulePermitBatch",
584
1205
  name: "p",
585
1206
  type: "tuple",
586
1207
  },
@@ -594,13 +1215,8 @@ const _abi = [
594
1215
  name: "index",
595
1216
  type: "uint8",
596
1217
  },
597
- {
598
- internalType: "bytes",
599
- name: "paymentReference",
600
- type: "bytes",
601
- },
602
1218
  ],
603
- name: "triggerRecurringPayment",
1219
+ name: "triggerRecurringPaymentBatch",
604
1220
  outputs: [],
605
1221
  stateMutability: "nonpayable",
606
1222
  type: "function",
@@ -609,7 +1225,7 @@ const _abi = [
609
1225
  inputs: [
610
1226
  {
611
1227
  internalType: "bytes32",
612
- name: "",
1228
+ name: "scheduleKey",
613
1229
  type: "bytes32",
614
1230
  },
615
1231
  ],
@@ -632,7 +1248,7 @@ const _abi = [
632
1248
  type: "function",
633
1249
  },
634
1250
  ];
635
- const _bytecode = "0x6101606040523480156200001257600080fd5b50604051620026d6380380620026d6833981016040819052620000359162000560565b6040518060400160405280601a81526020017f4552433230526563757272696e675061796d656e7450726f7879000000000000815250604051806040016040528060018152602001603160f81b815250620000a06000836200022b60201b62000a1f1790919060201c565b61012052620000bd8160016200022b602090811b62000a1f17901c565b61014052815160208084019190912060e052815190820120610100524660a0526200014b60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526003805460ff1916905560016004556200016e336200027f565b6001600160a01b03831615806200018c57506001600160a01b038216155b806200019f57506001600160a01b038116155b15620001be57604051636f4df31160e01b815260040160405180910390fd5b620001cb600084620002d1565b620001f77fe2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc483620002d1565b620002028362000376565b600880546001600160a01b0319166001600160a01b039290921691909117905550620006619050565b60006020835110156200024b576200024383620003f9565b905062000279565b8262000262836200043c60201b62000a561760201c565b81516200027392602001906200049d565b5060ff90505b92915050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff16620003725760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003313390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b620003806200043f565b6001600160a01b038116620003eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b620003f6816200027f565b50565b600080829050601f8151111562000427578260405163305a27a960e01b8152600401620003e29190620005aa565b8051620004348262000602565b179392505050565b90565b6005546001600160a01b031633146200049b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003e2565b565b828054620004ab906200062a565b90600052602060002090601f016020900481019282620004cf57600085556200051a565b82601f10620004ea57805160ff19168380011785556200051a565b828001600101855582156200051a579182015b828111156200051a578251825591602001919060010190620004fd565b50620005289291506200052c565b5090565b5b808211156200052857600081556001016200052d565b80516001600160a01b03811681146200055b57600080fd5b919050565b6000806000606084860312156200057657600080fd5b620005818462000543565b9250620005916020850162000543565b9150620005a16040850162000543565b90509250925092565b600060208083528351808285015260005b81811015620005d957858101830151858201604001528201620005bb565b81811115620005ec576000604083870101525b50601f01601f1916929092016040019392505050565b8051602080830151919081101562000624576000198160200360031b1b821691505b50919050565b600181811c908216806200063f57607f821691505b602082108114156200062457634e487b7160e01b600052602260045260246000fd5b60805160a05160c05160e05161010051610120516101405161201a620006bc600039600061051b015260006104f1015260006116a001526000611678015260006115d3015260006115fd01526000611627015261201a6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063926d7d7f1161007c578063926d7d7f14610290578063a217fddf146102a5578063ac7a9e00146102ad578063d547741f146102c0578063e94938a6146102d3578063f2fde38b1461030857600080fd5b8063715018a6146102415780638456cb591461024957806384b0196e146102515780638da5cb5b1461026c57806391d148541461027d57600080fd5b806336568abe116100ff57806336568abe146101e85780633f4ba83a146101fb57806340f4483b146102035780635c975abb1461022357806369d775a41461022e57600080fd5b806301ffc9a71461013c578063176b2bfb14610164578063248a9ca31461018f57806325be0be1146101c05780632f2ff15d146101d5575b600080fd5b61014f61014a366004611853565b61031b565b60405190151581526020015b60405180910390f35b600854610177906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b6101b261019d36600461187d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101d36101ce3660046118b2565b610352565b005b6101d36101e33660046118cd565b6103a3565b6101d36101f63660046118cd565b6103cd565b6101d3610450565b6101b261021136600461187d565b60066020526000908152604090205481565b60035460ff1661014f565b6101d361023c3660046118f9565b610462565b6101d36104c1565b6101d36104d3565b6102596104e3565b60405161015b979695949392919061197f565b6005546001600160a01b0316610177565b61014f61028b3660046118cd565b61056b565b6101b2600080516020611fc583398151915281565b6101b2600081565b6101d36102bb366004611a68565b610596565b6101d36102ce3660046118cd565b610981565b6102f66102e136600461187d565b60076020526000908152604090205460ff1681565b60405160ff909116815260200161015b565b6101d36103163660046118b2565b6109a6565b60006001600160e01b03198216637965db0b60e01b148061034c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61035a610a59565b6001600160a01b03811661038157604051636f4df31160e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152600260205260409020600101546103be81610ab3565b6103c88383610abd565b505050565b6001600160a01b03811633146104425760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61044c8282610b43565b5050565b610458610a59565b610460610baa565b565b61046a610a59565b6001600160a01b03811661049157604051636f4df31160e01b815260040160405180910390fd5b6104a9600080516020611fc583398151915283610b43565b61044c600080516020611fc583398151915282610abd565b6104c9610a59565b6104606000610bfc565b6104db610a59565b610460610c4e565b6000606080828080836105167f000000000000000000000000000000000000000000000000000000000000000083610c8b565b6105417f00000000000000000000000000000000000000000000000000000000000000006001610c8b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61059e610d2f565b600080516020611fc58339815191526105b681610ab3565b6105be610d75565b60006105c988610dcf565b90506105d860208901896118b2565b6001600160a01b031661062388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508693925050610e2d9050565b6001600160a01b03161461064a57604051636ad27af560e11b815260040160405180910390fd5b8761016001354211156106705760405163da023c0b60e01b815260040160405180910390fd5b6101008560ff161061069557604051631cd9d08560e21b815260040160405180910390fd5b6106a76101a089016101808a01611b37565b1561070a576000818152600760205260409020546106c99060ff166001611b6a565b60ff168560ff16146106ee5760405163061235ef60e01b815260040160405180910390fd5b6000818152600760205260409020805460ff191660ff87161790555b61071c61014089016101208a01611b8f565b60ff168560ff1611156107425760405163bec060dd60e01b815260040160405180910390fd5b60006107556101008a0160e08b01611bbe565b63ffffffff16610766600188611bd9565b60ff166107739190611bfc565b6107856101208b016101008c01611bbe565b63ffffffff166107959190611c1b565b9050804210156107b85760405163b39d270960e01b815260040160405180910390fd5b600082815260066020526040902054600160ff88161b90808216156107f05760405163544db32b60e01b815260040160405180910390fd5b6000848152600660205260408120828417905561081360e08d0160c08e01611c4a565b61082360c08e0160a08f01611c4a565b8d60800160208101906108369190611c4a565b6108409190611c65565b61084a9190611c65565b6001600160801b03169050600061086760408e0160208f016118b2565b905061088b61087960208f018f6118b2565b6001600160a01b038316903085610e51565b506008546108a7906001600160a01b0383811691166000610f2d565b5061090b600860009054906101000a90046001600160a01b03168e60a00160208101906108d49190611c4a565b8f60800160208101906108e79190611c4a565b6108f19190611c65565b6001600160a01b03841691906001600160801b0316610f2d565b506109178d8a8a611000565b61092760e08e0160c08f01611c4a565b6001600160801b03161561096857610966338e60c001602081019061094c9190611c4a565b6001600160a01b03841691906001600160801b03166110b3565b505b5050505050506109786001600455565b50505050505050565b60008281526002602052604090206001015461099c81610ab3565b6103c88383610b43565b6109ae610a59565b6001600160a01b038116610a135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610439565b610a1c81610bfc565b50565b6000602083511015610a3b57610a3483611110565b905061034c565b82828151610a4c92602001906117ba565b5060ff905061034c565b90565b6005546001600160a01b031633146104605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610439565b610a1c813361114e565b610ac7828261056b565b61044c5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610aff3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610b4d828261056b565b1561044c5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b610bb26111a7565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c56610d2f565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610bdf3390565b606060ff8314610c9e57610a34836111f0565b818054610caa90611c90565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd690611c90565b8015610d235780601f10610cf857610100808354040283529160200191610d23565b820191906000526020600020905b815481529060010190602001808311610d0657829003601f168201915b5050505050905061034c565b60035460ff16156104605760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610439565b60026004541415610dc85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610439565b6002600455565b6000807f3e691a1c66178d267f01c56f85dc2647a09aabeafc8f5c5d40d6021b0b2a6d0383604051602001610e05929190611ccb565b604051602081830303815290604052805190602001209050610e268161122f565b9392505050565b6000806000610e3c858561125c565b91509150610e49816112a2565b509392505050565b6040516001600160a01b038481166024830152838116604483015260648201839052600091829182919088169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251610eb69190611e2f565b6000604051808303816000865af19150503d8060008114610ef3576040519150601f19603f3d011682016040523d82523d6000602084013e610ef8565b606091505b5091509150818015610f22575080511580610f22575080806020019051810190610f229190611e4b565b979650505050505050565b6040516001600160a01b03838116602483015260448201839052600091829182919087169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251610f8a9190611e2f565b6000604051808303816000865af19150503d8060008114610fc7576040519150601f19603f3d011682016040523d82523d6000602084013e610fcc565b606091505b5091509150818015610ff6575080511580610ff6575080806020019051810190610ff69190611e4b565b9695505050505050565b6008546001600160a01b031663c219a14d61102160408601602087016118b2565b61103160608701604088016118b2565b61104160a0880160808901611c4a565b868661105360c08b0160a08c01611c4a565b61106360808c0160608d016118b2565b6040518863ffffffff1660e01b81526004016110859796959493929190611e68565b600060405180830381600087803b15801561109f57600080fd5b505af1158015610978573d6000803e3d6000fd5b6040516001600160a01b03838116602483015260448201839052600091829182919087169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610f8a9190611e2f565b600080829050601f8151111561113b578260405163305a27a960e01b81526004016104399190611ed5565b805161114682611ee8565b179392505050565b611158828261056b565b61044c57611165816113f0565b611170836020611402565b604051602001611181929190611f0c565b60408051601f198184030181529082905262461bcd60e51b825261043991600401611ed5565b60035460ff166104605760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610439565b606060006111fd8361159e565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600061034c61123c6115c6565b8360405161190160f01b8152600281019290925260228201526042902090565b6000808251604114156112935760208301516040840151606085015160001a611287878285856116f6565b9450945050505061129b565b506000905060025b9250929050565b60008160048111156112b6576112b6611f81565b14156112bf5750565b60018160048111156112d3576112d3611f81565b14156113215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610439565b600281600481111561133557611335611f81565b14156113835760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610439565b600381600481111561139757611397611f81565b1415610a1c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610439565b606061034c6001600160a01b03831660145b60606000611411836002611bfc565b61141c906002611c1b565b67ffffffffffffffff81111561143457611434611b08565b6040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b509050600360fc1b8160008151811061147957611479611f97565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114a8576114a8611f97565b60200101906001600160f81b031916908160001a90535060006114cc846002611bfc565b6114d7906001611c1b565b90505b600181111561154f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061150b5761150b611f97565b1a60f81b82828151811061152157611521611f97565b60200101906001600160f81b031916908160001a90535060049490941c9361154881611fad565b90506114da565b508315610e265760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610439565b600060ff8216601f81111561034c57604051632cd44ac360e21b815260040160405180910390fd5b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561161f57507f000000000000000000000000000000000000000000000000000000000000000046145b1561164957507f000000000000000000000000000000000000000000000000000000000000000090565b6116f1604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561172d57506000905060036117b1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611781573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166117aa576000600192509250506117b1565b9150600090505b94509492505050565b8280546117c690611c90565b90600052602060002090601f0160209004810192826117e8576000855561182e565b82601f1061180157805160ff191683800117855561182e565b8280016001018555821561182e579182015b8281111561182e578251825591602001919060010190611813565b5061183a92915061183e565b5090565b5b8082111561183a576000815560010161183f565b60006020828403121561186557600080fd5b81356001600160e01b031981168114610e2657600080fd5b60006020828403121561188f57600080fd5b5035919050565b80356001600160a01b03811681146118ad57600080fd5b919050565b6000602082840312156118c457600080fd5b610e2682611896565b600080604083850312156118e057600080fd5b823591506118f060208401611896565b90509250929050565b6000806040838503121561190c57600080fd5b61191583611896565b91506118f060208401611896565b60005b8381101561193e578181015183820152602001611926565b8381111561194d576000848401525b50505050565b6000815180845261196b816020860160208601611923565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e08184015261199f60e084018a611953565b83810360408501526119b1818a611953565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611a03578351835292840192918401916001016119e7565b50909c9b505050505050505050505050565b60008083601f840112611a2757600080fd5b50813567ffffffffffffffff811115611a3f57600080fd5b60208301915083602082850101111561129b57600080fd5b803560ff811681146118ad57600080fd5b600080600080600080868803610200811215611a8357600080fd5b6101a080821215611a9357600080fd5b889750870135905067ffffffffffffffff80821115611ab157600080fd5b611abd8a838b01611a15565b9097509550859150611ad26101c08a01611a57565b94506101e0890135915080821115611ae957600080fd5b50611af689828a01611a15565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610a1c57600080fd5b80356118ad81611b1e565b600060208284031215611b4957600080fd5b8135610e2681611b1e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115611b8757611b87611b54565b019392505050565b600060208284031215611ba157600080fd5b610e2682611a57565b803563ffffffff811681146118ad57600080fd5b600060208284031215611bd057600080fd5b610e2682611baa565b600060ff821660ff841680821015611bf357611bf3611b54565b90039392505050565b6000816000190483118215151615611c1657611c16611b54565b500290565b60008219821115611c2e57611c2e611b54565b500190565b80356001600160801b03811681146118ad57600080fd5b600060208284031215611c5c57600080fd5b610e2682611c33565b60006001600160801b03808316818516808303821115611c8757611c87611b54565b01949350505050565b600181811c90821680611ca457607f821691505b60208210811415611cc557634e487b7160e01b600052602260045260246000fd5b50919050565b8281526101c08101611cf060208301611ce385611896565b6001600160a01b03169052565b611cfc60208401611896565b6001600160a01b038116604084015250611d1860408401611896565b6001600160a01b038116606084015250611d3460608401611896565b6001600160a01b038116608084015250611d5060808401611c33565b6001600160801b03811660a084015250611d6c60a08401611c33565b6001600160801b03811660c084015250611d8860c08401611c33565b6001600160801b03811660e084015250611da460e08401611baa565b610100611db88185018363ffffffff169052565b611dc3818601611baa565b915050610120611dda8185018363ffffffff169052565b611de5818601611a57565b915050610140611df98185018360ff169052565b61016091508085013582850152506101808185013581850152611e1d818601611b2c565b915050610e496101a084018215159052565b60008251611e41818460208701611923565b9190910192915050565b600060208284031215611e5d57600080fd5b8151610e2681611b1e565b600060018060a01b03808a16835280891660208401526001600160801b03808916604085015260c060608501528660c0850152868860e0860137600060e0888601810191909152951660808401529290921660a0820152601f909301601f19169092010195945050505050565b602081526000610e266020830184611953565b80516020808301519190811015611cc55760001960209190910360031b1b16919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611f44816017850160208801611923565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611f75816028840160208801611923565b01602801949350505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081611fbc57611fbc611b54565b50600019019056fee2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc4a264697066735822122092c48c44feb207d96e99c09d3d48a9aab6e2778574103c3ad9d1734e074c726864736f6c63430008090033";
1251
+ const _bytecode = "0x6101606040523480156200001257600080fd5b506040516200352438038062003524833981016040819052620000359162000420565b6040518060400160405280601a81526020017f4552433230526563757272696e675061796d656e7450726f7879000000000000815250604051806040016040528060018152602001603160f81b815250620000a06000836200021560201b62000f981790919060201c565b61012052620000bd81600162000215602090811b62000f9817901c565b61014052815160208084019190912060e052815190820120610100524660a0526200014b60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526003805460ff1916905560016004556001600160a01b03831615806200018157506001600160a01b038216155b806200019457506001600160a01b038116155b15620001b357604051636f4df31160e01b815260040160405180910390fd5b620001c060008462000269565b620001ec7fe2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc48362000269565b600680546001600160a01b0319166001600160a01b039290921691909117905550620005219050565b600060208351101562000235576200022d836200030e565b905062000263565b826200024c836200035a60201b62000fcf1760201c565b81516200025d92602001906200035d565b5060ff90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff166200030a5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002c93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080829050601f8151111562000345578260405163305a27a960e01b81526004016200033c91906200046a565b60405180910390fd5b80516200035282620004c2565b179392505050565b90565b8280546200036b90620004ea565b90600052602060002090601f0160209004810192826200038f5760008555620003da565b82601f10620003aa57805160ff1916838001178555620003da565b82800160010185558215620003da579182015b82811115620003da578251825591602001919060010190620003bd565b50620003e8929150620003ec565b5090565b5b80821115620003e85760008155600101620003ed565b80516001600160a01b03811681146200041b57600080fd5b919050565b6000806000606084860312156200043657600080fd5b620004418462000403565b9250620004516020850162000403565b9150620004616040850162000403565b90509250925092565b600060208083528351808285015260005b8181101562000499578581018301518582016040015282016200047b565b81811115620004ac576000604083870101525b50601f01601f1916929092016040019392505050565b80516020808301519190811015620004e4576000198160200360031b1b821691505b50919050565b600181811c90821680620004ff57607f821691505b60208210811415620004e457634e487b7160e01b600052602260045260246000fd5b60805160a05160c05160e051610100516101205161014051612fa86200057c6000396000610d5101526000610d27015260006123730152600061234b015260006122a6015260006122d0015260006122fa0152612fa86000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806366ece09a11610104578063a217fddf116100a2578063d547741f11610071578063d547741f14610465578063e22b155214610478578063e94938a614610492578063f99448c7146104b857600080fd5b8063a217fddf146103d1578063b9c12b01146103d9578063cea9d26f146103ec578063d1e16bfa146103ff57600080fd5b806384b0196e116100de57806384b0196e1461037b57806391d148541461039657806392649c50146103a9578063926d7d7f146103bc57600080fd5b806366ece09a14610325578063820030f2146103505780638456cb591461037357600080fd5b80632f2ff15d116101715780633f4ba83a1161014b5780633f4ba83a146102df57806340f4483b146102e75780634a50bb4e146103075780635c975abb1461031a57600080fd5b80632f2ff15d146102a657806335b2adf9146102b957806336568abe146102cc57600080fd5b806321323400116101ad578063213234001461023c57806321ef5f8b1461025d578063248a9ca31461027057806325be0be11461029357600080fd5b806301ffc9a7146101d45780630968a50c146101fc578063176b2bfb14610211575b600080fd5b6101e76101e236600461282e565b6104cb565b60405190151581526020015b60405180910390f35b61020f61020a366004612871565b610502565b005b600654610224906001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b61024f61024a366004612871565b610590565b6040519081526020016101f3565b61020f61026b3660046128ca565b6105ba565b61024f61027e3660046128e5565b60009081526002602052604090206001015490565b61020f6102a13660046128ca565b610616565b61020f6102b43660046128fe565b61069b565b61020f6102c736600461293b565b6106c5565b61020f6102da3660046128fe565b610c50565b61020f610ccf565b61024f6102f53660046128e5565b60009081526005602052604090205490565b61024f610315366004612871565b610ce5565b60035460ff166101e7565b6101e76103333660046128e5565b600090815260056020526040902060020154610100900460ff1690565b61024f61035e3660046128e5565b60009081526005602052604090206001015490565b61020f610d06565b610383610d19565b6040516101f39796959493929190612a3b565b6101e76103a43660046128fe565b610da1565b61020f6103b73660046128ca565b610dcc565b61024f600080516020612f5383398151915281565b61024f600081565b61020f6103e7366004612ad1565b610e16565b61020f6103fa366004612af3565b610e86565b61043a61040d3660046128e5565b60056020526000908152604090208054600182015460029092015490919060ff8082169161010090041684565b6040516101f39493929190938452602084019290925260ff1660408301521515606082015260800190565b61020f6104733660046128fe565b610f0f565b610480600881565b60405160ff90911681526020016101f3565b6104806104a03660046128e5565b60009081526005602052604090206002015460ff1690565b61020f6104c6366004612ad1565b610f34565b60006001600160e01b03198216637965db0b60e01b14806104fc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61051761051260208301836128ca565b610fd2565b600061052282610ce5565b600081815260056020526040902090915061054990600201805461ff001916610100179055565b61055660208301836128ca565b6001600160a01b0316817f6b3e01872ad8692cfd4a45e25ac6fc0881dad875133dd1aef8a2eddc5395edf160405160405180910390a35050565b60008060008061059f85610ffb565b9250925092506105b185848484611048565b95945050505050565b60006105c581611166565b6105dd600080516020612f5383398151915283610da1565b6105fa5760405163fcc8eeb360e01b815260040160405180910390fd5b610612600080516020612f5383398151915283611170565b5050565b600061062181611166565b6001600160a01b03821661064857604051636f4df31160e01b815260040160405180910390fd5b600680546001600160a01b038481166001600160a01b0319831681179093556040519116919082907fcfb67368e4345be223f62e5066c5aab5ad5f1c41f35b05b7b080dc807decabc790600090a3505050565b6000828152600260205260409020600101546106b681611166565b6106c083836111d7565b505050565b6106cd61125d565b6106d56112a5565b60006106e760408601602087016128ca565b6001600160a01b031614806107115750600061070660208601866128ca565b6001600160a01b0316145b1561072f57604051636f4df31160e01b815260040160405180910390fd5b60ff81166107505760405163bec060dd60e01b815260040160405180910390fd5b60008061075c866112ff565b600082815260056020908152604090912092945090925061078a90610783908901896128ca565b828661133a565b6107a261079a60208901896128ca565b8388886113b4565b8660a001354211156107c75760405163da023c0b60e01b815260040160405180910390fd5b6107d76080880160608901612b2f565b60ff1615806107fa57506107f16080880160608901612b2f565b60ff168460ff16115b156108185760405163bec060dd60e01b815260040160405180910390fd5b6108286080880160608901612b2f565b60ff16610839610100890189612b4a565b9050146108595760405163e4bb86d560e01b815260040160405180910390fd5b60015b61086a610100890189612b4a565b905081101561091d57610881610100890189612b4a565b61088c600184612baa565b81811061089b5761089b612bc1565b90506020020160208101906108b09190612bd7565b63ffffffff166108c46101008a018a612b4a565b838181106108d4576108d4612bc1565b90506020020160208101906108e99190612bd7565b63ffffffff161161090d5760405163e4bb86d560e01b815260040160405180910390fd5b61091681612bfd565b905061085c565b5061092c610100880188612b4a565b610937600187612c18565b60ff1681811061094957610949612bc1565b905060200201602081019061095e9190612bd7565b63ffffffff164210156109845760405163b39d270960e01b815260040160405180910390fd5b61098d87611412565b610996816114e5565b6109b081856109ab60e08b0160c08c01612c49565b611510565b6109ba8185611550565b60006109ca610120890189612c66565b15801591506109dc57508460ff166001145b90506000610a09826109fb576109f66101408b018b612c66565b611578565b6109f66101208b018b612c66565b90506000610a1d60608b0160408c01612caf565b610a30906001600160801b031683612cd8565b9050610a4c8488610a4760e08e0160c08f01612c49565b6115da565b6000610a5e60408c0160208d016128ca565b90506000600660009054906101000a90046001600160a01b031690506000610a99838e6000016020810190610a9391906128ca565b86611604565b9050610aa683838761175c565b8515610ade57610ad9828e6020016020810190610ac391906128ca565b8f806101200190610ad49190612c66565b6117bf565b610b06565b610b06828e6020016020810190610af591906128ca565b8f806101400190610ad49190612c66565b610b2b838e6040016020810190610b1d9190612caf565b6001600160801b03166118ea565b6040516370a0823160e01b815230600482015281906001600160a01b038516906370a082319060240160206040518083038186803b158015610b6c57600080fd5b505afa158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba49190612cf0565b14610bc25760405163e118041960e01b815260040160405180910390fd5b610bcf60208e018e6128ca565b6001600160a01b0316897fca17c68cbe212e978183435ff7a0323fd9c66cf81d539b13c4b20a884aaf7f998f6020016020810190610c0d91906128ca565b604080516001600160a01b03909216825260ff8f166020830152810188905260600160405180910390a3505050505050505050610c4a6001600455565b50505050565b6001600160a01b0381163314610cc55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106128282611170565b6000610cda81611166565b610ce2611924565b50565b600080600080610cf485610ffb565b9250925092506105b185848484611976565b6000610d1181611166565b610ce2611a69565b600060608082808083610d4c7f000000000000000000000000000000000000000000000000000000000000000083611aa6565b610d777f00000000000000000000000000000000000000000000000000000000000000006001611aa6565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610dd781611166565b6001600160a01b038216610dfe57604051636f4df31160e01b815260040160405180910390fd5b610612600080516020612f53833981519152836111d7565b600080516020612f53833981519152610e2e81611166565b600083815260056020526040908190206001018054841790555183907f7c09772004c5ce10c626c33ded2e9ed4acd190d996d3d79560260956e0657a8190610e799085815260200190565b60405180910390a2505050565b6000610e9181611166565b610e996112a5565b6001600160a01b0384161580610eb657506001600160a01b038316155b15610ed457604051636f4df31160e01b815260040160405180910390fd5b610ee86001600160a01b0385168484611b4a565b610f0557604051637ac428f560e01b815260040160405180910390fd5b610c4a6001600455565b600082815260026020526040902060010154610f2a81611166565b6106c08383611170565b600080516020612f53833981519152610f4c81611166565b60008381526005602052604090819020600101805484191690555183907fe573bb4310d54b17ab95302d025743411a5f51a11b380dfbca4c253f9f5239a690610e799085815260200190565b6000602083511015610fb457610fad83611c13565b90506104fc565b82828151610fc59260200190612795565b5060ff90506104fc565b90565b336001600160a01b03821614610ce257604051637768888b60e11b815260040160405180910390fd5b60008080611015611010610100860186612b4a565b611c51565b925061102d611028610120860186612c66565b611d32565b9150611040611028610140860186612c66565b929491935050565b6000807f6b0fb3f43ad46240ab189a3d31f6e8361dbf07be24223460d8e8f305f296c37061107960208801886128ca565b6110896040890160208a016128ca565b61109960608a0160408b01612caf565b6110a960808b0160608c01612b2f565b60808b013560a08c01356110c360e08e0160c08f01612c49565b6040805160208101999099526001600160a01b03978816908901529590941660608701526001600160801b03909216608086015260ff1660a085015260c084015260e0838101919091529015156101008301528701356101208201526101408101869052610160810185905261018081018490526101a00160405160208183030381529060405280519060200120905061115c81611dd2565b9695505050505050565b610ce28133611dff565b61117a8282610da1565b156106125760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6111e18282610da1565b6106125760008281526002602090815260408083206001600160a01b03851684529091529020805460ff191660011790556112193390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60035460ff16156112a35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610cbc565b565b600260045414156112f85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610cbc565b6002600455565b600080600080600061131086610ffb565b92509250925061132286848484611976565b945061133086848484611048565b9350505050915091565b611352600080516020612f5383398151915233610da1565b1561135c57505050565b336001600160a01b0384161461138557604051637768888b60e11b815260040160405180910390fd5b8060ff166001901b826001015416600014156106c057604051633412526560e21b815260040160405180910390fd5b6113f5848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e5892505050565b610c4a57604051636ad27af560e11b815260040160405180910390fd5b6008611422610120830183612c66565b9050118061143f5750600861143b610140830183612c66565b9050115b1561145d5760405163064b1f2f60e51b815260040160405180910390fd5b61146b610120820182612c66565b15905061148857611488611483610120830183612c66565b611eaf565b611496610140820182612c66565b15159050806114b7575060016114b26080830160608401612b2f565b60ff16115b806114cf57506114cb610120820182612c66565b1590505b15610ce257610ce2611483610140830183612c66565b6002810154610100900460ff1615610ce25760405163bb65adbd60e01b815260040160405180910390fd5b8080156115325750600283015461152b9060ff166001612cd8565b8260ff1614155b156106c05760405163061235ef60e01b815260040160405180910390fd5b8154600160ff83161b16156106125760405163544db32b60e01b815260040160405180910390fd5b6000805b828110156115d35783838281811061159657611596612bc1565b90506060020160200160208101906115ae9190612caf565b6115c1906001600160801b031683612cd8565b91506115cc81612bfd565b905061157c565b5092915050565b8254600160ff84161b17835580156106c05760028301805460ff841660ff19909116179055505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167e9190612cf0565b90506116956001600160a01b03851684308561202d565b6116b257604051637ac428f560e01b815260040160405180910390fd5b6040516370a0823160e01b8152306004820152829082906001600160a01b038716906370a082319060240160206040518083038186803b1580156116f557600080fd5b505afa158015611709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172d9190612cf0565b6117379190612baa565b1461175557604051633fb49be560e01b815260040160405180910390fd5b9392505050565b6117716001600160a01b038416836000612109565b61178e57604051637ac428f560e01b815260040160405180910390fd5b6117a26001600160a01b0384168383612109565b6106c057604051637ac428f560e01b815260040160405180910390fd5b60005b818110156118e357846001600160a01b031663c219a14d858585858181106117ec576117ec612bc1565b61180292602060609092020190810191506128ca565b86868681811061181457611814612bc1565b905060600201602001602081019061182c9190612caf565b87878781811061183e5761183e612bc1565b90506060020160400160208101906118569190612d1f565b6040516001600160c01b031990911660208201526028016040516020818303038152906040526000806040518763ffffffff1660e01b81526004016118a096959493929190612d49565b600060405180830381600087803b1580156118ba57600080fd5b505af11580156118ce573d6000803e3d6000fd5b50505050806118dc90612bfd565b90506117c2565b5050505050565b806118f3575050565b6119076001600160a01b0383163383611b4a565b61061257604051637ac428f560e01b815260040160405180910390fd5b61192c612166565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600060e085013561199a5760405163de734e8160e01b815260040160405180910390fd5b6119a760208601866128ca565b60e08601356119bc60408801602089016128ca565b6119cc6060890160408a01612caf565b6119dc60808a0160608b01612b2f565b6119ec60e08b0160c08c01612c49565b604080516001600160a01b039788166020820152908101959095529490921660608401526001600160801b0316608083015260ff1660a082015290151560c082015260e081018590526101008101849052610120810183905261014001604051602081830303815290604052805190602001209050949350505050565b611a7161125d565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119593390565b606060ff8314611ab957610fad836121af565b818054611ac590612d9d565b80601f0160208091040260200160405190810160405280929190818152602001828054611af190612d9d565b8015611b3e5780601f10611b1357610100808354040283529160200191611b3e565b820191906000526020600020905b815481529060010190602001808311611b2157829003601f168201915b505050505090506104fc565b6040516001600160a01b03838116602483015260448201839052600091829182919087169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251611ba79190612dd2565b6000604051808303816000865af19150503d8060008114611be4576040519150601f19603f3d011682016040523d82523d6000602084013e611be9565b606091505b509150915081801561115c57508051158061115c57508080602001905181019061115c9190612dee565b600080829050601f81511115611c3e578260405163305a27a960e01b8152600401610cbc9190612e0b565b8051611c4982612e1e565b179392505050565b6000808267ffffffffffffffff811115611c6d57611c6d612d09565b604051908082528060200260200182016040528015611c96578160200160208202803683370190505b50905060005b83811015611d0157848482818110611cb657611cb6612bc1565b9050602002016020810190611ccb9190612bd7565b63ffffffff1660001b828281518110611ce657611ce6612bc1565b6020908102919091010152611cfa81612bfd565b9050611c9c565b5080604051602001611d139190612e42565b6040516020818303038152906040528051906020012091505092915050565b6000808267ffffffffffffffff811115611d4e57611d4e612d09565b604051908082528060200260200182016040528015611d77578160200160208202803683370190505b50905060005b83811015611d0157611da5858583818110611d9a57611d9a612bc1565b9050606002016121ee565b828281518110611db757611db7612bc1565b6020908102919091010152611dcb81612bfd565b9050611d7d565b60006104fc611ddf612299565b8360405161190160f01b8152600281019290925260228201526042902090565b611e098282610da1565b61061257611e16816123c9565b611e218360206123db565b604051602001611e32929190612e78565b60408051601f198184030181529082905262461bcd60e51b8252610cbc91600401612e0b565b6000806000611e678585612577565b90925090506000816004811115611e8057611e80612eed565b148015611e9e5750856001600160a01b0316826001600160a01b0316145b8061115c575061115c8686866125bd565b80611ecd57604051633030275f60e11b815260040160405180910390fd5b60005b818110156106c0576000838383818110611eec57611eec612bc1565b611f0292602060609092020190810191506128ca565b6001600160a01b03161415611f2a57604051636f4df31160e01b815260040160405180910390fd5b828282818110611f3c57611f3c612bc1565b9050606002016020016020810190611f549190612caf565b6001600160801b0316611f7a57604051637313901b60e11b815260040160405180910390fd5b60005b8181101561201c57838382818110611f9757611f97612bc1565b9050606002016040016020810190611faf9190612d1f565b6001600160c01b031916848484818110611fcb57611fcb612bc1565b9050606002016040016020810190611fe39190612d1f565b6001600160c01b031916141561200c5760405163630c1b5d60e11b815260040160405180910390fd5b61201581612bfd565b9050611f7d565b5061202681612bfd565b9050611ed0565b6040516001600160a01b038481166024830152838116604483015260648201839052600091829182919088169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516120929190612dd2565b6000604051808303816000865af19150503d80600081146120cf576040519150601f19603f3d011682016040523d82523d6000602084013e6120d4565b606091505b50915091508180156120fe5750805115806120fe5750808060200190518101906120fe9190612dee565b979650505050505050565b6040516001600160a01b03838116602483015260448201839052600091829182919087169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251611ba79190612dd2565b60035460ff166112a35760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610cbc565b606060006121bc836126a9565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60007f2bd7d05f9b7f8d539e37d65aa77d5ff63850852240ce10c873e88e8b5171eeb861221e60208401846128ca565b61222e6040850160208601612caf565b61223e6060860160408701612d1f565b6040805160208101959095526001600160a01b03909316928401929092526001600160801b031660608301526001600160c01b031916608082015260a001604051602081830303815290604052805190602001209050919050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156122f257507f000000000000000000000000000000000000000000000000000000000000000046145b1561231c57507f000000000000000000000000000000000000000000000000000000000000000090565b6123c4604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60606104fc6001600160a01b03831660145b606060006123ea836002612f03565b6123f5906002612cd8565b67ffffffffffffffff81111561240d5761240d612d09565b6040519080825280601f01601f191660200182016040528015612437576020820181803683370190505b509050600360fc1b8160008151811061245257612452612bc1565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061248157612481612bc1565b60200101906001600160f81b031916908160001a90535060006124a5846002612f03565b6124b0906001612cd8565b90505b6001811115612528576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106124e4576124e4612bc1565b1a60f81b8282815181106124fa576124fa612bc1565b60200101906001600160f81b031916908160001a90535060049490941c9361252181612f22565b90506124b3565b5083156117555760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610cbc565b6000808251604114156125ae5760208301516040840151606085015160001a6125a2878285856126d1565b945094505050506125b6565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b86866040516024016125e7929190612f39565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516126259190612dd2565b600060405180830381855afa9150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b509150915081801561267957506020815110155b801561115c57508051630b135d3f60e11b9061269e9083016020908101908401612cf0565b149695505050505050565b600060ff8216601f8111156104fc57604051632cd44ac360e21b815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612708575060009050600361278c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561275c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166127855760006001925092505061278c565b9150600090505b94509492505050565b8280546127a190612d9d565b90600052602060002090601f0160209004810192826127c35760008555612809565b82601f106127dc57805160ff1916838001178555612809565b82800160010185558215612809579182015b828111156128095782518255916020019190600101906127ee565b50612815929150612819565b5090565b5b80821115612815576000815560010161281a565b60006020828403121561284057600080fd5b81356001600160e01b03198116811461175557600080fd5b6000610160828403121561286b57600080fd5b50919050565b60006020828403121561288357600080fd5b813567ffffffffffffffff81111561289a57600080fd5b6128a684828501612858565b949350505050565b80356001600160a01b03811681146128c557600080fd5b919050565b6000602082840312156128dc57600080fd5b611755826128ae565b6000602082840312156128f757600080fd5b5035919050565b6000806040838503121561291157600080fd5b82359150612921602084016128ae565b90509250929050565b803560ff811681146128c557600080fd5b6000806000806060858703121561295157600080fd5b843567ffffffffffffffff8082111561296957600080fd5b61297588838901612858565b9550602087013591508082111561298b57600080fd5b818701915087601f83011261299f57600080fd5b8135818111156129ae57600080fd5b8860208285010111156129c057600080fd5b6020830195508094505050506129d86040860161292a565b905092959194509250565b60005b838110156129fe5781810151838201526020016129e6565b83811115610c4a5750506000910152565b60008151808452612a278160208601602086016129e3565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e081840152612a5b60e084018a612a0f565b8381036040850152612a6d818a612a0f565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015612abf57835183529284019291840191600101612aa3565b50909c9b505050505050505050505050565b60008060408385031215612ae457600080fd5b50508035926020909101359150565b600080600060608486031215612b0857600080fd5b612b11846128ae565b9250612b1f602085016128ae565b9150604084013590509250925092565b600060208284031215612b4157600080fd5b6117558261292a565b6000808335601e19843603018112612b6157600080fd5b83018035915067ffffffffffffffff821115612b7c57600080fd5b6020019150600581901b36038213156125b657600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015612bbc57612bbc612b94565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612be957600080fd5b813563ffffffff8116811461175557600080fd5b6000600019821415612c1157612c11612b94565b5060010190565b600060ff821660ff841680821015612c3257612c32612b94565b90039392505050565b8015158114610ce257600080fd5b600060208284031215612c5b57600080fd5b813561175581612c3b565b6000808335601e19843603018112612c7d57600080fd5b83018035915067ffffffffffffffff821115612c9857600080fd5b60200191506060810236038213156125b657600080fd5b600060208284031215612cc157600080fd5b81356001600160801b038116811461175557600080fd5b60008219821115612ceb57612ceb612b94565b500190565b600060208284031215612d0257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215612d3157600080fd5b81356001600160c01b03198116811461175557600080fd5b600060018060a01b03808916835280881660208401526001600160801b038716604084015260c06060840152612d8260c0840187612a0f565b60808401959095529290921660a09091015250949350505050565b600181811c90821680612db157607f821691505b6020821081141561286b57634e487b7160e01b600052602260045260246000fd5b60008251612de48184602087016129e3565b9190910192915050565b600060208284031215612e0057600080fd5b815161175581612c3b565b6020815260006117556020830184612a0f565b8051602080830151919081101561286b5760001960209190910360031b1b16919050565b815160009082906020808601845b83811015612e6c57815185529382019390820190600101612e50565b50929695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612eb08160178501602088016129e3565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612ee18160288401602088016129e3565b01602801949350505050565b634e487b7160e01b600052602160045260246000fd5b6000816000190483118215151615612f1d57612f1d612b94565b500290565b600081612f3157612f31612b94565b506000190190565b8281526040602082015260006128a66040830184612a0f56fee2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc4a2646970667358221220e7af4770170c41be0322a70895ec760c809a2362ffc31cae33a43bd1bd70e52064736f6c63430008090033";
636
1252
  const isSuperArgs = (xs) => xs.length > 1;
637
1253
  class ERC20RecurringPaymentProxy__factory extends ethers_1.ContractFactory {
638
1254
  constructor(...args) {