coreum-js 2.3.1

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 (218) hide show
  1. package/README.md +18 -0
  2. package/dist/main/client/index.d.ts +48 -0
  3. package/dist/main/client/index.js +242 -0
  4. package/dist/main/coreum/asset/ft/v1/event.d.ts +148 -0
  5. package/dist/main/coreum/asset/ft/v1/event.js +377 -0
  6. package/dist/main/coreum/asset/ft/v1/genesis.d.ts +415 -0
  7. package/dist/main/coreum/asset/ft/v1/genesis.js +197 -0
  8. package/dist/main/coreum/asset/ft/v1/params.d.ts +54 -0
  9. package/dist/main/coreum/asset/ft/v1/params.js +69 -0
  10. package/dist/main/coreum/asset/ft/v1/query.d.ts +1863 -0
  11. package/dist/main/coreum/asset/ft/v1/query.js +892 -0
  12. package/dist/main/coreum/asset/ft/v1/token.d.ts +145 -0
  13. package/dist/main/coreum/asset/ft/v1/token.js +361 -0
  14. package/dist/main/coreum/asset/ft/v1/tx.d.ts +416 -0
  15. package/dist/main/coreum/asset/ft/v1/tx.js +760 -0
  16. package/dist/main/coreum/asset/index.d.ts +3 -0
  17. package/dist/main/coreum/asset/index.js +26 -0
  18. package/dist/main/coreum/asset/nft/v1/event.d.ts +191 -0
  19. package/dist/main/coreum/asset/nft/v1/event.js +490 -0
  20. package/dist/main/coreum/asset/nft/v1/genesis.d.ts +321 -0
  21. package/dist/main/coreum/asset/nft/v1/genesis.js +362 -0
  22. package/dist/main/coreum/asset/nft/v1/nft.d.ts +153 -0
  23. package/dist/main/coreum/asset/nft/v1/nft.js +361 -0
  24. package/dist/main/coreum/asset/nft/v1/params.d.ts +54 -0
  25. package/dist/main/coreum/asset/nft/v1/params.js +69 -0
  26. package/dist/main/coreum/asset/nft/v1/query.d.ts +785 -0
  27. package/dist/main/coreum/asset/nft/v1/query.js +627 -0
  28. package/dist/main/coreum/asset/nft/v1/tx.d.ts +357 -0
  29. package/dist/main/coreum/asset/nft/v1/tx.js +806 -0
  30. package/dist/main/coreum/asset/nft/v1/types.d.ts +33 -0
  31. package/dist/main/coreum/asset/nft/v1/types.js +108 -0
  32. package/dist/main/coreum/customparams/v1/genesis.d.ts +48 -0
  33. package/dist/main/coreum/customparams/v1/genesis.js +70 -0
  34. package/dist/main/coreum/customparams/v1/params.d.ts +35 -0
  35. package/dist/main/coreum/customparams/v1/params.js +67 -0
  36. package/dist/main/coreum/customparams/v1/query.d.ts +74 -0
  37. package/dist/main/coreum/customparams/v1/query.js +119 -0
  38. package/dist/main/coreum/extensions/ft.d.ts +13 -0
  39. package/dist/main/coreum/extensions/ft.js +36 -0
  40. package/dist/main/coreum/extensions/nft.d.ts +11 -0
  41. package/dist/main/coreum/extensions/nft.js +30 -0
  42. package/dist/main/coreum/extensions/nftbeta.d.ts +13 -0
  43. package/dist/main/coreum/extensions/nftbeta.js +36 -0
  44. package/dist/main/coreum/feemodel/v1/genesis.d.ts +251 -0
  45. package/dist/main/coreum/feemodel/v1/genesis.js +87 -0
  46. package/dist/main/coreum/feemodel/v1/params.d.ts +384 -0
  47. package/dist/main/coreum/feemodel/v1/params.js +201 -0
  48. package/dist/main/coreum/feemodel/v1/query.d.ts +306 -0
  49. package/dist/main/coreum/feemodel/v1/query.js +214 -0
  50. package/dist/main/coreum/google/api/annotations.d.ts +1 -0
  51. package/dist/main/coreum/google/api/annotations.js +6 -0
  52. package/dist/main/coreum/google/api/http.d.ts +2953 -0
  53. package/dist/main/coreum/google/api/http.js +329 -0
  54. package/dist/main/coreum/google/protobuf/any.d.ts +148 -0
  55. package/dist/main/coreum/google/protobuf/any.js +122 -0
  56. package/dist/main/coreum/index.d.ts +291 -0
  57. package/dist/main/coreum/index.js +116 -0
  58. package/dist/main/coreum/nft/index.d.ts +2 -0
  59. package/dist/main/coreum/nft/index.js +9 -0
  60. package/dist/main/coreum/nft/v1beta1/event.d.ts +109 -0
  61. package/dist/main/coreum/nft/v1beta1/event.js +255 -0
  62. package/dist/main/coreum/nft/v1beta1/genesis.d.ts +460 -0
  63. package/dist/main/coreum/nft/v1beta1/genesis.js +160 -0
  64. package/dist/main/coreum/nft/v1beta1/nft.d.ts +153 -0
  65. package/dist/main/coreum/nft/v1beta1/nft.js +258 -0
  66. package/dist/main/coreum/nft/v1beta1/query.d.ts +1733 -0
  67. package/dist/main/coreum/nft/v1beta1/query.js +872 -0
  68. package/dist/main/coreum/nft/v1beta1/tx.d.ts +80 -0
  69. package/dist/main/coreum/nft/v1beta1/tx.js +155 -0
  70. package/dist/main/cosmos/base/query/v1beta1/pagination.d.ts +470 -0
  71. package/dist/main/cosmos/base/query/v1beta1/pagination.js +224 -0
  72. package/dist/main/cosmos/base/v1beta1/coin.d.ts +114 -0
  73. package/dist/main/cosmos/base/v1beta1/coin.js +242 -0
  74. package/dist/main/cosmos/msg/v1/msg.d.ts +1 -0
  75. package/dist/main/cosmos/msg/v1/msg.js +6 -0
  76. package/dist/main/index.d.ts +5 -0
  77. package/dist/main/index.js +22 -0
  78. package/dist/main/services/cosmostation.d.ts +4 -0
  79. package/dist/main/services/cosmostation.js +47 -0
  80. package/dist/main/services/index.d.ts +2 -0
  81. package/dist/main/services/index.js +19 -0
  82. package/dist/main/services/keplr.d.ts +2 -0
  83. package/dist/main/services/keplr.js +119 -0
  84. package/dist/main/signers/dcent.d.ts +1 -0
  85. package/dist/main/signers/dcent.js +41 -0
  86. package/dist/main/signers/index.d.ts +3 -0
  87. package/dist/main/signers/index.js +20 -0
  88. package/dist/main/signers/offline.d.ts +4 -0
  89. package/dist/main/signers/offline.js +11 -0
  90. package/dist/main/signers/signer.d.ts +6 -0
  91. package/dist/main/signers/signer.js +17 -0
  92. package/dist/main/types/core.d.ts +24 -0
  93. package/dist/main/types/core.js +18 -0
  94. package/dist/main/types/coreum.d.ts +74 -0
  95. package/dist/main/types/coreum.js +80 -0
  96. package/dist/main/types/index.d.ts +3 -0
  97. package/dist/main/types/index.js +20 -0
  98. package/dist/main/types/signing.d.ts +20 -0
  99. package/dist/main/types/signing.js +17 -0
  100. package/dist/main/utils/calculations.d.ts +6 -0
  101. package/dist/main/utils/calculations.js +41 -0
  102. package/dist/main/utils/event.d.ts +5 -0
  103. package/dist/main/utils/event.js +22 -0
  104. package/dist/main/utils/index.d.ts +3 -0
  105. package/dist/main/utils/index.js +20 -0
  106. package/dist/main/utils/nft.d.ts +2 -0
  107. package/dist/main/utils/nft.js +9 -0
  108. package/dist/main/utils/wallet.d.ts +5 -0
  109. package/dist/main/utils/wallet.js +37 -0
  110. package/dist/module/client/index.d.ts +48 -0
  111. package/dist/module/client/index.js +241 -0
  112. package/dist/module/coreum/asset/ft/v1/event.d.ts +148 -0
  113. package/dist/module/coreum/asset/ft/v1/event.js +368 -0
  114. package/dist/module/coreum/asset/ft/v1/genesis.d.ts +415 -0
  115. package/dist/module/coreum/asset/ft/v1/genesis.js +189 -0
  116. package/dist/module/coreum/asset/ft/v1/params.d.ts +54 -0
  117. package/dist/module/coreum/asset/ft/v1/params.js +63 -0
  118. package/dist/module/coreum/asset/ft/v1/query.d.ts +1863 -0
  119. package/dist/module/coreum/asset/ft/v1/query.js +878 -0
  120. package/dist/module/coreum/asset/ft/v1/token.d.ts +145 -0
  121. package/dist/module/coreum/asset/ft/v1/token.js +351 -0
  122. package/dist/module/coreum/asset/ft/v1/tx.d.ts +416 -0
  123. package/dist/module/coreum/asset/ft/v1/tx.js +747 -0
  124. package/dist/module/coreum/asset/index.d.ts +3 -0
  125. package/dist/module/coreum/asset/index.js +23 -0
  126. package/dist/module/coreum/asset/nft/v1/event.d.ts +191 -0
  127. package/dist/module/coreum/asset/nft/v1/event.js +479 -0
  128. package/dist/module/coreum/asset/nft/v1/genesis.d.ts +321 -0
  129. package/dist/module/coreum/asset/nft/v1/genesis.js +352 -0
  130. package/dist/module/coreum/asset/nft/v1/nft.d.ts +153 -0
  131. package/dist/module/coreum/asset/nft/v1/nft.js +351 -0
  132. package/dist/module/coreum/asset/nft/v1/params.d.ts +54 -0
  133. package/dist/module/coreum/asset/nft/v1/params.js +63 -0
  134. package/dist/module/coreum/asset/nft/v1/query.d.ts +785 -0
  135. package/dist/module/coreum/asset/nft/v1/query.js +615 -0
  136. package/dist/module/coreum/asset/nft/v1/tx.d.ts +357 -0
  137. package/dist/module/coreum/asset/nft/v1/tx.js +794 -0
  138. package/dist/module/coreum/asset/nft/v1/types.d.ts +33 -0
  139. package/dist/module/coreum/asset/nft/v1/types.js +101 -0
  140. package/dist/module/coreum/customparams/v1/genesis.d.ts +48 -0
  141. package/dist/module/coreum/customparams/v1/genesis.js +64 -0
  142. package/dist/module/coreum/customparams/v1/params.d.ts +35 -0
  143. package/dist/module/coreum/customparams/v1/params.js +60 -0
  144. package/dist/module/coreum/customparams/v1/query.d.ts +74 -0
  145. package/dist/module/coreum/customparams/v1/query.js +114 -0
  146. package/dist/module/coreum/extensions/ft.d.ts +13 -0
  147. package/dist/module/coreum/extensions/ft.js +32 -0
  148. package/dist/module/coreum/extensions/nft.d.ts +11 -0
  149. package/dist/module/coreum/extensions/nft.js +26 -0
  150. package/dist/module/coreum/extensions/nftbeta.d.ts +13 -0
  151. package/dist/module/coreum/extensions/nftbeta.js +32 -0
  152. package/dist/module/coreum/feemodel/v1/genesis.d.ts +251 -0
  153. package/dist/module/coreum/feemodel/v1/genesis.js +81 -0
  154. package/dist/module/coreum/feemodel/v1/params.d.ts +384 -0
  155. package/dist/module/coreum/feemodel/v1/params.js +194 -0
  156. package/dist/module/coreum/feemodel/v1/query.d.ts +306 -0
  157. package/dist/module/coreum/feemodel/v1/query.js +209 -0
  158. package/dist/module/coreum/google/api/annotations.d.ts +1 -0
  159. package/dist/module/coreum/google/api/annotations.js +3 -0
  160. package/dist/module/coreum/google/api/http.d.ts +2953 -0
  161. package/dist/module/coreum/google/api/http.js +320 -0
  162. package/dist/module/coreum/google/protobuf/any.d.ts +148 -0
  163. package/dist/module/coreum/google/protobuf/any.js +115 -0
  164. package/dist/module/coreum/index.d.ts +291 -0
  165. package/dist/module/coreum/index.js +113 -0
  166. package/dist/module/coreum/nft/index.d.ts +2 -0
  167. package/dist/module/coreum/nft/index.js +6 -0
  168. package/dist/module/coreum/nft/v1beta1/event.d.ts +109 -0
  169. package/dist/module/coreum/nft/v1beta1/event.js +246 -0
  170. package/dist/module/coreum/nft/v1beta1/genesis.d.ts +460 -0
  171. package/dist/module/coreum/nft/v1beta1/genesis.js +152 -0
  172. package/dist/module/coreum/nft/v1beta1/nft.d.ts +153 -0
  173. package/dist/module/coreum/nft/v1beta1/nft.js +250 -0
  174. package/dist/module/coreum/nft/v1beta1/query.d.ts +1733 -0
  175. package/dist/module/coreum/nft/v1beta1/query.js +858 -0
  176. package/dist/module/coreum/nft/v1beta1/tx.d.ts +80 -0
  177. package/dist/module/coreum/nft/v1beta1/tx.js +149 -0
  178. package/dist/module/cosmos/base/query/v1beta1/pagination.d.ts +470 -0
  179. package/dist/module/cosmos/base/query/v1beta1/pagination.js +216 -0
  180. package/dist/module/cosmos/base/v1beta1/coin.d.ts +114 -0
  181. package/dist/module/cosmos/base/v1beta1/coin.js +232 -0
  182. package/dist/module/cosmos/msg/v1/msg.d.ts +1 -0
  183. package/dist/module/cosmos/msg/v1/msg.js +3 -0
  184. package/dist/module/index.d.ts +5 -0
  185. package/dist/module/index.js +6 -0
  186. package/dist/module/services/cosmostation.d.ts +4 -0
  187. package/dist/module/services/cosmostation.js +42 -0
  188. package/dist/module/services/index.d.ts +2 -0
  189. package/dist/module/services/index.js +3 -0
  190. package/dist/module/services/keplr.d.ts +2 -0
  191. package/dist/module/services/keplr.js +115 -0
  192. package/dist/module/signers/dcent.d.ts +1 -0
  193. package/dist/module/signers/dcent.js +31 -0
  194. package/dist/module/signers/index.d.ts +3 -0
  195. package/dist/module/signers/index.js +4 -0
  196. package/dist/module/signers/offline.d.ts +4 -0
  197. package/dist/module/signers/offline.js +7 -0
  198. package/dist/module/signers/signer.d.ts +6 -0
  199. package/dist/module/signers/signer.js +11 -0
  200. package/dist/module/types/core.d.ts +24 -0
  201. package/dist/module/types/core.js +15 -0
  202. package/dist/module/types/coreum.d.ts +74 -0
  203. package/dist/module/types/coreum.js +77 -0
  204. package/dist/module/types/index.d.ts +3 -0
  205. package/dist/module/types/index.js +4 -0
  206. package/dist/module/types/signing.d.ts +20 -0
  207. package/dist/module/types/signing.js +14 -0
  208. package/dist/module/utils/calculations.d.ts +6 -0
  209. package/dist/module/utils/calculations.js +29 -0
  210. package/dist/module/utils/event.d.ts +5 -0
  211. package/dist/module/utils/event.js +18 -0
  212. package/dist/module/utils/index.d.ts +3 -0
  213. package/dist/module/utils/index.js +4 -0
  214. package/dist/module/utils/nft.d.ts +2 -0
  215. package/dist/module/utils/nft.js +5 -0
  216. package/dist/module/utils/wallet.d.ts +5 -0
  217. package/dist/module/utils/wallet.js +31 -0
  218. package/package.json +55 -0
@@ -0,0 +1,794 @@
1
+ /* eslint-disable */
2
+ import Long from "long";
3
+ import _m0 from "protobufjs/minimal";
4
+ import { Any } from "../../../google/protobuf/any";
5
+ import { classFeatureFromJSON, classFeatureToJSON } from "./nft";
6
+ export const protobufPackage = "coreum.asset.nft.v1";
7
+ function createBaseMsgIssueClass() {
8
+ return {
9
+ issuer: "",
10
+ symbol: "",
11
+ name: "",
12
+ description: "",
13
+ uri: "",
14
+ uriHash: "",
15
+ data: undefined,
16
+ features: [],
17
+ royaltyRate: "",
18
+ };
19
+ }
20
+ export const MsgIssueClass = {
21
+ encode(message, writer = _m0.Writer.create()) {
22
+ if (message.issuer !== "") {
23
+ writer.uint32(10).string(message.issuer);
24
+ }
25
+ if (message.symbol !== "") {
26
+ writer.uint32(18).string(message.symbol);
27
+ }
28
+ if (message.name !== "") {
29
+ writer.uint32(26).string(message.name);
30
+ }
31
+ if (message.description !== "") {
32
+ writer.uint32(34).string(message.description);
33
+ }
34
+ if (message.uri !== "") {
35
+ writer.uint32(42).string(message.uri);
36
+ }
37
+ if (message.uriHash !== "") {
38
+ writer.uint32(50).string(message.uriHash);
39
+ }
40
+ if (message.data !== undefined) {
41
+ Any.encode(message.data, writer.uint32(58).fork()).ldelim();
42
+ }
43
+ writer.uint32(66).fork();
44
+ for (const v of message.features) {
45
+ writer.int32(v);
46
+ }
47
+ writer.ldelim();
48
+ if (message.royaltyRate !== "") {
49
+ writer.uint32(74).string(message.royaltyRate);
50
+ }
51
+ return writer;
52
+ },
53
+ decode(input, length) {
54
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
55
+ let end = length === undefined ? reader.len : reader.pos + length;
56
+ const message = createBaseMsgIssueClass();
57
+ while (reader.pos < end) {
58
+ const tag = reader.uint32();
59
+ switch (tag >>> 3) {
60
+ case 1:
61
+ if (tag != 10) {
62
+ break;
63
+ }
64
+ message.issuer = reader.string();
65
+ continue;
66
+ case 2:
67
+ if (tag != 18) {
68
+ break;
69
+ }
70
+ message.symbol = reader.string();
71
+ continue;
72
+ case 3:
73
+ if (tag != 26) {
74
+ break;
75
+ }
76
+ message.name = reader.string();
77
+ continue;
78
+ case 4:
79
+ if (tag != 34) {
80
+ break;
81
+ }
82
+ message.description = reader.string();
83
+ continue;
84
+ case 5:
85
+ if (tag != 42) {
86
+ break;
87
+ }
88
+ message.uri = reader.string();
89
+ continue;
90
+ case 6:
91
+ if (tag != 50) {
92
+ break;
93
+ }
94
+ message.uriHash = reader.string();
95
+ continue;
96
+ case 7:
97
+ if (tag != 58) {
98
+ break;
99
+ }
100
+ message.data = Any.decode(reader, reader.uint32());
101
+ continue;
102
+ case 8:
103
+ if (tag == 64) {
104
+ message.features.push(reader.int32());
105
+ continue;
106
+ }
107
+ if (tag == 66) {
108
+ const end2 = reader.uint32() + reader.pos;
109
+ while (reader.pos < end2) {
110
+ message.features.push(reader.int32());
111
+ }
112
+ continue;
113
+ }
114
+ break;
115
+ case 9:
116
+ if (tag != 74) {
117
+ break;
118
+ }
119
+ message.royaltyRate = reader.string();
120
+ continue;
121
+ }
122
+ if ((tag & 7) == 4 || tag == 0) {
123
+ break;
124
+ }
125
+ reader.skipType(tag & 7);
126
+ }
127
+ return message;
128
+ },
129
+ fromJSON(object) {
130
+ return {
131
+ issuer: isSet(object.issuer) ? String(object.issuer) : "",
132
+ symbol: isSet(object.symbol) ? String(object.symbol) : "",
133
+ name: isSet(object.name) ? String(object.name) : "",
134
+ description: isSet(object.description) ? String(object.description) : "",
135
+ uri: isSet(object.uri) ? String(object.uri) : "",
136
+ uriHash: isSet(object.uriHash) ? String(object.uriHash) : "",
137
+ data: isSet(object.data) ? Any.fromJSON(object.data) : undefined,
138
+ features: Array.isArray(object?.features)
139
+ ? object.features.map((e) => classFeatureFromJSON(e))
140
+ : [],
141
+ royaltyRate: isSet(object.royaltyRate) ? String(object.royaltyRate) : "",
142
+ };
143
+ },
144
+ toJSON(message) {
145
+ const obj = {};
146
+ message.issuer !== undefined && (obj.issuer = message.issuer);
147
+ message.symbol !== undefined && (obj.symbol = message.symbol);
148
+ message.name !== undefined && (obj.name = message.name);
149
+ message.description !== undefined &&
150
+ (obj.description = message.description);
151
+ message.uri !== undefined && (obj.uri = message.uri);
152
+ message.uriHash !== undefined && (obj.uriHash = message.uriHash);
153
+ message.data !== undefined &&
154
+ (obj.data = message.data ? Any.toJSON(message.data) : undefined);
155
+ if (message.features) {
156
+ obj.features = message.features.map((e) => classFeatureToJSON(e));
157
+ }
158
+ else {
159
+ obj.features = [];
160
+ }
161
+ message.royaltyRate !== undefined &&
162
+ (obj.royaltyRate = message.royaltyRate);
163
+ return obj;
164
+ },
165
+ create(base) {
166
+ return MsgIssueClass.fromPartial(base ?? {});
167
+ },
168
+ fromPartial(object) {
169
+ const message = createBaseMsgIssueClass();
170
+ message.issuer = object.issuer ?? "";
171
+ message.symbol = object.symbol ?? "";
172
+ message.name = object.name ?? "";
173
+ message.description = object.description ?? "";
174
+ message.uri = object.uri ?? "";
175
+ message.uriHash = object.uriHash ?? "";
176
+ message.data =
177
+ object.data !== undefined && object.data !== null
178
+ ? Any.fromPartial(object.data)
179
+ : undefined;
180
+ message.features = object.features?.map((e) => e) || [];
181
+ message.royaltyRate = object.royaltyRate ?? "";
182
+ return message;
183
+ },
184
+ };
185
+ function createBaseMsgMint() {
186
+ return {
187
+ sender: "",
188
+ classId: "",
189
+ id: "",
190
+ uri: "",
191
+ uriHash: "",
192
+ data: undefined,
193
+ };
194
+ }
195
+ export const MsgMint = {
196
+ encode(message, writer = _m0.Writer.create()) {
197
+ if (message.sender !== "") {
198
+ writer.uint32(10).string(message.sender);
199
+ }
200
+ if (message.classId !== "") {
201
+ writer.uint32(18).string(message.classId);
202
+ }
203
+ if (message.id !== "") {
204
+ writer.uint32(26).string(message.id);
205
+ }
206
+ if (message.uri !== "") {
207
+ writer.uint32(34).string(message.uri);
208
+ }
209
+ if (message.uriHash !== "") {
210
+ writer.uint32(42).string(message.uriHash);
211
+ }
212
+ if (message.data !== undefined) {
213
+ Any.encode(message.data, writer.uint32(50).fork()).ldelim();
214
+ }
215
+ return writer;
216
+ },
217
+ decode(input, length) {
218
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
219
+ let end = length === undefined ? reader.len : reader.pos + length;
220
+ const message = createBaseMsgMint();
221
+ while (reader.pos < end) {
222
+ const tag = reader.uint32();
223
+ switch (tag >>> 3) {
224
+ case 1:
225
+ if (tag != 10) {
226
+ break;
227
+ }
228
+ message.sender = reader.string();
229
+ continue;
230
+ case 2:
231
+ if (tag != 18) {
232
+ break;
233
+ }
234
+ message.classId = reader.string();
235
+ continue;
236
+ case 3:
237
+ if (tag != 26) {
238
+ break;
239
+ }
240
+ message.id = reader.string();
241
+ continue;
242
+ case 4:
243
+ if (tag != 34) {
244
+ break;
245
+ }
246
+ message.uri = reader.string();
247
+ continue;
248
+ case 5:
249
+ if (tag != 42) {
250
+ break;
251
+ }
252
+ message.uriHash = reader.string();
253
+ continue;
254
+ case 6:
255
+ if (tag != 50) {
256
+ break;
257
+ }
258
+ message.data = Any.decode(reader, reader.uint32());
259
+ continue;
260
+ }
261
+ if ((tag & 7) == 4 || tag == 0) {
262
+ break;
263
+ }
264
+ reader.skipType(tag & 7);
265
+ }
266
+ return message;
267
+ },
268
+ fromJSON(object) {
269
+ return {
270
+ sender: isSet(object.sender) ? String(object.sender) : "",
271
+ classId: isSet(object.classId) ? String(object.classId) : "",
272
+ id: isSet(object.id) ? String(object.id) : "",
273
+ uri: isSet(object.uri) ? String(object.uri) : "",
274
+ uriHash: isSet(object.uriHash) ? String(object.uriHash) : "",
275
+ data: isSet(object.data) ? Any.fromJSON(object.data) : undefined,
276
+ };
277
+ },
278
+ toJSON(message) {
279
+ const obj = {};
280
+ message.sender !== undefined && (obj.sender = message.sender);
281
+ message.classId !== undefined && (obj.classId = message.classId);
282
+ message.id !== undefined && (obj.id = message.id);
283
+ message.uri !== undefined && (obj.uri = message.uri);
284
+ message.uriHash !== undefined && (obj.uriHash = message.uriHash);
285
+ message.data !== undefined &&
286
+ (obj.data = message.data ? Any.toJSON(message.data) : undefined);
287
+ return obj;
288
+ },
289
+ create(base) {
290
+ return MsgMint.fromPartial(base ?? {});
291
+ },
292
+ fromPartial(object) {
293
+ const message = createBaseMsgMint();
294
+ message.sender = object.sender ?? "";
295
+ message.classId = object.classId ?? "";
296
+ message.id = object.id ?? "";
297
+ message.uri = object.uri ?? "";
298
+ message.uriHash = object.uriHash ?? "";
299
+ message.data =
300
+ object.data !== undefined && object.data !== null
301
+ ? Any.fromPartial(object.data)
302
+ : undefined;
303
+ return message;
304
+ },
305
+ };
306
+ function createBaseMsgBurn() {
307
+ return { sender: "", classId: "", id: "" };
308
+ }
309
+ export const MsgBurn = {
310
+ encode(message, writer = _m0.Writer.create()) {
311
+ if (message.sender !== "") {
312
+ writer.uint32(10).string(message.sender);
313
+ }
314
+ if (message.classId !== "") {
315
+ writer.uint32(18).string(message.classId);
316
+ }
317
+ if (message.id !== "") {
318
+ writer.uint32(26).string(message.id);
319
+ }
320
+ return writer;
321
+ },
322
+ decode(input, length) {
323
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
324
+ let end = length === undefined ? reader.len : reader.pos + length;
325
+ const message = createBaseMsgBurn();
326
+ while (reader.pos < end) {
327
+ const tag = reader.uint32();
328
+ switch (tag >>> 3) {
329
+ case 1:
330
+ if (tag != 10) {
331
+ break;
332
+ }
333
+ message.sender = reader.string();
334
+ continue;
335
+ case 2:
336
+ if (tag != 18) {
337
+ break;
338
+ }
339
+ message.classId = reader.string();
340
+ continue;
341
+ case 3:
342
+ if (tag != 26) {
343
+ break;
344
+ }
345
+ message.id = reader.string();
346
+ continue;
347
+ }
348
+ if ((tag & 7) == 4 || tag == 0) {
349
+ break;
350
+ }
351
+ reader.skipType(tag & 7);
352
+ }
353
+ return message;
354
+ },
355
+ fromJSON(object) {
356
+ return {
357
+ sender: isSet(object.sender) ? String(object.sender) : "",
358
+ classId: isSet(object.classId) ? String(object.classId) : "",
359
+ id: isSet(object.id) ? String(object.id) : "",
360
+ };
361
+ },
362
+ toJSON(message) {
363
+ const obj = {};
364
+ message.sender !== undefined && (obj.sender = message.sender);
365
+ message.classId !== undefined && (obj.classId = message.classId);
366
+ message.id !== undefined && (obj.id = message.id);
367
+ return obj;
368
+ },
369
+ create(base) {
370
+ return MsgBurn.fromPartial(base ?? {});
371
+ },
372
+ fromPartial(object) {
373
+ const message = createBaseMsgBurn();
374
+ message.sender = object.sender ?? "";
375
+ message.classId = object.classId ?? "";
376
+ message.id = object.id ?? "";
377
+ return message;
378
+ },
379
+ };
380
+ function createBaseMsgFreeze() {
381
+ return { sender: "", classId: "", id: "" };
382
+ }
383
+ export const MsgFreeze = {
384
+ encode(message, writer = _m0.Writer.create()) {
385
+ if (message.sender !== "") {
386
+ writer.uint32(10).string(message.sender);
387
+ }
388
+ if (message.classId !== "") {
389
+ writer.uint32(18).string(message.classId);
390
+ }
391
+ if (message.id !== "") {
392
+ writer.uint32(26).string(message.id);
393
+ }
394
+ return writer;
395
+ },
396
+ decode(input, length) {
397
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
398
+ let end = length === undefined ? reader.len : reader.pos + length;
399
+ const message = createBaseMsgFreeze();
400
+ while (reader.pos < end) {
401
+ const tag = reader.uint32();
402
+ switch (tag >>> 3) {
403
+ case 1:
404
+ if (tag != 10) {
405
+ break;
406
+ }
407
+ message.sender = reader.string();
408
+ continue;
409
+ case 2:
410
+ if (tag != 18) {
411
+ break;
412
+ }
413
+ message.classId = reader.string();
414
+ continue;
415
+ case 3:
416
+ if (tag != 26) {
417
+ break;
418
+ }
419
+ message.id = reader.string();
420
+ continue;
421
+ }
422
+ if ((tag & 7) == 4 || tag == 0) {
423
+ break;
424
+ }
425
+ reader.skipType(tag & 7);
426
+ }
427
+ return message;
428
+ },
429
+ fromJSON(object) {
430
+ return {
431
+ sender: isSet(object.sender) ? String(object.sender) : "",
432
+ classId: isSet(object.classId) ? String(object.classId) : "",
433
+ id: isSet(object.id) ? String(object.id) : "",
434
+ };
435
+ },
436
+ toJSON(message) {
437
+ const obj = {};
438
+ message.sender !== undefined && (obj.sender = message.sender);
439
+ message.classId !== undefined && (obj.classId = message.classId);
440
+ message.id !== undefined && (obj.id = message.id);
441
+ return obj;
442
+ },
443
+ create(base) {
444
+ return MsgFreeze.fromPartial(base ?? {});
445
+ },
446
+ fromPartial(object) {
447
+ const message = createBaseMsgFreeze();
448
+ message.sender = object.sender ?? "";
449
+ message.classId = object.classId ?? "";
450
+ message.id = object.id ?? "";
451
+ return message;
452
+ },
453
+ };
454
+ function createBaseMsgUnfreeze() {
455
+ return { sender: "", classId: "", id: "" };
456
+ }
457
+ export const MsgUnfreeze = {
458
+ encode(message, writer = _m0.Writer.create()) {
459
+ if (message.sender !== "") {
460
+ writer.uint32(10).string(message.sender);
461
+ }
462
+ if (message.classId !== "") {
463
+ writer.uint32(18).string(message.classId);
464
+ }
465
+ if (message.id !== "") {
466
+ writer.uint32(26).string(message.id);
467
+ }
468
+ return writer;
469
+ },
470
+ decode(input, length) {
471
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
472
+ let end = length === undefined ? reader.len : reader.pos + length;
473
+ const message = createBaseMsgUnfreeze();
474
+ while (reader.pos < end) {
475
+ const tag = reader.uint32();
476
+ switch (tag >>> 3) {
477
+ case 1:
478
+ if (tag != 10) {
479
+ break;
480
+ }
481
+ message.sender = reader.string();
482
+ continue;
483
+ case 2:
484
+ if (tag != 18) {
485
+ break;
486
+ }
487
+ message.classId = reader.string();
488
+ continue;
489
+ case 3:
490
+ if (tag != 26) {
491
+ break;
492
+ }
493
+ message.id = reader.string();
494
+ continue;
495
+ }
496
+ if ((tag & 7) == 4 || tag == 0) {
497
+ break;
498
+ }
499
+ reader.skipType(tag & 7);
500
+ }
501
+ return message;
502
+ },
503
+ fromJSON(object) {
504
+ return {
505
+ sender: isSet(object.sender) ? String(object.sender) : "",
506
+ classId: isSet(object.classId) ? String(object.classId) : "",
507
+ id: isSet(object.id) ? String(object.id) : "",
508
+ };
509
+ },
510
+ toJSON(message) {
511
+ const obj = {};
512
+ message.sender !== undefined && (obj.sender = message.sender);
513
+ message.classId !== undefined && (obj.classId = message.classId);
514
+ message.id !== undefined && (obj.id = message.id);
515
+ return obj;
516
+ },
517
+ create(base) {
518
+ return MsgUnfreeze.fromPartial(base ?? {});
519
+ },
520
+ fromPartial(object) {
521
+ const message = createBaseMsgUnfreeze();
522
+ message.sender = object.sender ?? "";
523
+ message.classId = object.classId ?? "";
524
+ message.id = object.id ?? "";
525
+ return message;
526
+ },
527
+ };
528
+ function createBaseMsgAddToWhitelist() {
529
+ return { sender: "", classId: "", id: "", account: "" };
530
+ }
531
+ export const MsgAddToWhitelist = {
532
+ encode(message, writer = _m0.Writer.create()) {
533
+ if (message.sender !== "") {
534
+ writer.uint32(10).string(message.sender);
535
+ }
536
+ if (message.classId !== "") {
537
+ writer.uint32(18).string(message.classId);
538
+ }
539
+ if (message.id !== "") {
540
+ writer.uint32(26).string(message.id);
541
+ }
542
+ if (message.account !== "") {
543
+ writer.uint32(34).string(message.account);
544
+ }
545
+ return writer;
546
+ },
547
+ decode(input, length) {
548
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
549
+ let end = length === undefined ? reader.len : reader.pos + length;
550
+ const message = createBaseMsgAddToWhitelist();
551
+ while (reader.pos < end) {
552
+ const tag = reader.uint32();
553
+ switch (tag >>> 3) {
554
+ case 1:
555
+ if (tag != 10) {
556
+ break;
557
+ }
558
+ message.sender = reader.string();
559
+ continue;
560
+ case 2:
561
+ if (tag != 18) {
562
+ break;
563
+ }
564
+ message.classId = reader.string();
565
+ continue;
566
+ case 3:
567
+ if (tag != 26) {
568
+ break;
569
+ }
570
+ message.id = reader.string();
571
+ continue;
572
+ case 4:
573
+ if (tag != 34) {
574
+ break;
575
+ }
576
+ message.account = reader.string();
577
+ continue;
578
+ }
579
+ if ((tag & 7) == 4 || tag == 0) {
580
+ break;
581
+ }
582
+ reader.skipType(tag & 7);
583
+ }
584
+ return message;
585
+ },
586
+ fromJSON(object) {
587
+ return {
588
+ sender: isSet(object.sender) ? String(object.sender) : "",
589
+ classId: isSet(object.classId) ? String(object.classId) : "",
590
+ id: isSet(object.id) ? String(object.id) : "",
591
+ account: isSet(object.account) ? String(object.account) : "",
592
+ };
593
+ },
594
+ toJSON(message) {
595
+ const obj = {};
596
+ message.sender !== undefined && (obj.sender = message.sender);
597
+ message.classId !== undefined && (obj.classId = message.classId);
598
+ message.id !== undefined && (obj.id = message.id);
599
+ message.account !== undefined && (obj.account = message.account);
600
+ return obj;
601
+ },
602
+ create(base) {
603
+ return MsgAddToWhitelist.fromPartial(base ?? {});
604
+ },
605
+ fromPartial(object) {
606
+ const message = createBaseMsgAddToWhitelist();
607
+ message.sender = object.sender ?? "";
608
+ message.classId = object.classId ?? "";
609
+ message.id = object.id ?? "";
610
+ message.account = object.account ?? "";
611
+ return message;
612
+ },
613
+ };
614
+ function createBaseMsgRemoveFromWhitelist() {
615
+ return { sender: "", classId: "", id: "", account: "" };
616
+ }
617
+ export const MsgRemoveFromWhitelist = {
618
+ encode(message, writer = _m0.Writer.create()) {
619
+ if (message.sender !== "") {
620
+ writer.uint32(10).string(message.sender);
621
+ }
622
+ if (message.classId !== "") {
623
+ writer.uint32(18).string(message.classId);
624
+ }
625
+ if (message.id !== "") {
626
+ writer.uint32(26).string(message.id);
627
+ }
628
+ if (message.account !== "") {
629
+ writer.uint32(34).string(message.account);
630
+ }
631
+ return writer;
632
+ },
633
+ decode(input, length) {
634
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
635
+ let end = length === undefined ? reader.len : reader.pos + length;
636
+ const message = createBaseMsgRemoveFromWhitelist();
637
+ while (reader.pos < end) {
638
+ const tag = reader.uint32();
639
+ switch (tag >>> 3) {
640
+ case 1:
641
+ if (tag != 10) {
642
+ break;
643
+ }
644
+ message.sender = reader.string();
645
+ continue;
646
+ case 2:
647
+ if (tag != 18) {
648
+ break;
649
+ }
650
+ message.classId = reader.string();
651
+ continue;
652
+ case 3:
653
+ if (tag != 26) {
654
+ break;
655
+ }
656
+ message.id = reader.string();
657
+ continue;
658
+ case 4:
659
+ if (tag != 34) {
660
+ break;
661
+ }
662
+ message.account = reader.string();
663
+ continue;
664
+ }
665
+ if ((tag & 7) == 4 || tag == 0) {
666
+ break;
667
+ }
668
+ reader.skipType(tag & 7);
669
+ }
670
+ return message;
671
+ },
672
+ fromJSON(object) {
673
+ return {
674
+ sender: isSet(object.sender) ? String(object.sender) : "",
675
+ classId: isSet(object.classId) ? String(object.classId) : "",
676
+ id: isSet(object.id) ? String(object.id) : "",
677
+ account: isSet(object.account) ? String(object.account) : "",
678
+ };
679
+ },
680
+ toJSON(message) {
681
+ const obj = {};
682
+ message.sender !== undefined && (obj.sender = message.sender);
683
+ message.classId !== undefined && (obj.classId = message.classId);
684
+ message.id !== undefined && (obj.id = message.id);
685
+ message.account !== undefined && (obj.account = message.account);
686
+ return obj;
687
+ },
688
+ create(base) {
689
+ return MsgRemoveFromWhitelist.fromPartial(base ?? {});
690
+ },
691
+ fromPartial(object) {
692
+ const message = createBaseMsgRemoveFromWhitelist();
693
+ message.sender = object.sender ?? "";
694
+ message.classId = object.classId ?? "";
695
+ message.id = object.id ?? "";
696
+ message.account = object.account ?? "";
697
+ return message;
698
+ },
699
+ };
700
+ function createBaseEmptyResponse() {
701
+ return {};
702
+ }
703
+ export const EmptyResponse = {
704
+ encode(_, writer = _m0.Writer.create()) {
705
+ return writer;
706
+ },
707
+ decode(input, length) {
708
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
709
+ let end = length === undefined ? reader.len : reader.pos + length;
710
+ const message = createBaseEmptyResponse();
711
+ while (reader.pos < end) {
712
+ const tag = reader.uint32();
713
+ switch (tag >>> 3) {
714
+ }
715
+ if ((tag & 7) == 4 || tag == 0) {
716
+ break;
717
+ }
718
+ reader.skipType(tag & 7);
719
+ }
720
+ return message;
721
+ },
722
+ fromJSON(_) {
723
+ return {};
724
+ },
725
+ toJSON(_) {
726
+ const obj = {};
727
+ return obj;
728
+ },
729
+ create(base) {
730
+ return EmptyResponse.fromPartial(base ?? {});
731
+ },
732
+ fromPartial(_) {
733
+ const message = createBaseEmptyResponse();
734
+ return message;
735
+ },
736
+ };
737
+ export class MsgClientImpl {
738
+ rpc;
739
+ service;
740
+ constructor(rpc, opts) {
741
+ this.service = opts?.service || "coreum.asset.nft.v1.Msg";
742
+ this.rpc = rpc;
743
+ this.IssueClass = this.IssueClass.bind(this);
744
+ this.Mint = this.Mint.bind(this);
745
+ this.Burn = this.Burn.bind(this);
746
+ this.Freeze = this.Freeze.bind(this);
747
+ this.Unfreeze = this.Unfreeze.bind(this);
748
+ this.AddToWhitelist = this.AddToWhitelist.bind(this);
749
+ this.RemoveFromWhitelist = this.RemoveFromWhitelist.bind(this);
750
+ }
751
+ IssueClass(request) {
752
+ const data = MsgIssueClass.encode(request).finish();
753
+ const promise = this.rpc.request(this.service, "IssueClass", data);
754
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
755
+ }
756
+ Mint(request) {
757
+ const data = MsgMint.encode(request).finish();
758
+ const promise = this.rpc.request(this.service, "Mint", data);
759
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
760
+ }
761
+ Burn(request) {
762
+ const data = MsgBurn.encode(request).finish();
763
+ const promise = this.rpc.request(this.service, "Burn", data);
764
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
765
+ }
766
+ Freeze(request) {
767
+ const data = MsgFreeze.encode(request).finish();
768
+ const promise = this.rpc.request(this.service, "Freeze", data);
769
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
770
+ }
771
+ Unfreeze(request) {
772
+ const data = MsgUnfreeze.encode(request).finish();
773
+ const promise = this.rpc.request(this.service, "Unfreeze", data);
774
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
775
+ }
776
+ AddToWhitelist(request) {
777
+ const data = MsgAddToWhitelist.encode(request).finish();
778
+ const promise = this.rpc.request(this.service, "AddToWhitelist", data);
779
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
780
+ }
781
+ RemoveFromWhitelist(request) {
782
+ const data = MsgRemoveFromWhitelist.encode(request).finish();
783
+ const promise = this.rpc.request(this.service, "RemoveFromWhitelist", data);
784
+ return promise.then((data) => EmptyResponse.decode(_m0.Reader.create(data)));
785
+ }
786
+ }
787
+ if (_m0.util.Long !== Long) {
788
+ _m0.util.Long = Long;
789
+ _m0.configure();
790
+ }
791
+ function isSet(value) {
792
+ return value !== null && value !== undefined;
793
+ }
794
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29yZXVtL2Fzc2V0L25mdC92MS90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLG9CQUFvQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRCxPQUFPLEVBQWdCLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQztBQTREckQsU0FBUyx1QkFBdUI7SUFDOUIsT0FBTztRQUNMLE1BQU0sRUFBRSxFQUFFO1FBQ1YsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsRUFBRTtRQUNSLFdBQVcsRUFBRSxFQUFFO1FBQ2YsR0FBRyxFQUFFLEVBQUU7UUFDUCxPQUFPLEVBQUUsRUFBRTtRQUNYLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLEVBQUU7UUFDWixXQUFXLEVBQUUsRUFBRTtLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixNQUFNLENBQ0osT0FBc0IsRUFDdEIsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUM5QixHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzdEO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUNELE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM5QixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDbkQsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQVMsQ0FBQyxDQUFDO3dCQUM3QyxTQUFTO3FCQUNWO29CQUVELElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQzt3QkFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRTs0QkFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBUyxDQUFDLENBQUM7eUJBQzlDO3dCQUVELFNBQVM7cUJBQ1Y7b0JBRUQsTUFBTTtnQkFDUixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RDLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRCxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RSxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1RCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDaEUsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxDQUFDLEVBQUU7WUFDTixXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFzQjtRQUMzQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQy9CLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN4QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQixHQUFHLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDTCxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNuQjtRQUNELE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUztZQUMvQixDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJO1lBQ1YsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUMvQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUM5QixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4RCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxpQkFBaUI7SUFDeEIsT0FBTztRQUNMLE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxFQUFFLEVBQUUsRUFBRTtRQUNOLEdBQUcsRUFBRSxFQUFFO1FBQ1AsT0FBTyxFQUFFLEVBQUU7UUFDWCxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixNQUFNLENBQ0osT0FBZ0IsRUFDaEIsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFFeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDOUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM3RDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzlCLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO2dCQUM5QixNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekQsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUQsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2pFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdCO1FBQ3JCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3hCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUEyQyxJQUFRO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBMkMsTUFBUztRQUM3RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsSUFBSTtZQUNWLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSTtnQkFDL0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsaUJBQWlCO0lBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsTUFBTSxDQUNKLE9BQWdCLEVBQ2hCLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0IsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pELE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVELEVBQUUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdCO1FBQ3JCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQTJDLElBQVE7UUFDdkQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUEyQyxNQUFTO1FBQzdELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLG1CQUFtQjtJQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLE1BQU0sQ0FDSixPQUFrQixFQUNsQixTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FDVixLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdCLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1RCxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFrQjtRQUN2QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUE2QyxJQUFRO1FBQ3pELE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFTO1FBRVQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM3QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMscUJBQXFCO0lBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsTUFBTSxDQUNKLE9BQW9CLEVBQ3BCLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixFQUFFLENBQUM7UUFDeEMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0IsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pELE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVELEVBQUUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQW9CO1FBQ3pCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQStDLElBQVE7UUFDM0QsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUywyQkFBMkI7SUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsTUFBTSxDQUNKLE9BQTBCLEVBQzFCLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2xDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3QixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbEMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pELE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVELEVBQUUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzdELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTBCO1FBQy9CLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBUztRQUVULE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsZ0NBQWdDO0lBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDMUQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLE1BQU0sQ0FDSixPQUErQixFQUMvQixTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQ0osS0FBOEIsRUFDOUIsTUFBZTtRQUVmLE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTt3QkFDYixNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2IsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0IsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNiLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2xDLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1RCxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUErQjtRQUNwQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBUTtRQUVSLE9BQU8sc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUNULE1BQVM7UUFFVCxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLHVCQUF1QjtJQUM5QixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxDQUNKLENBQWdCLEVBQ2hCLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUNWLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBZ0I7UUFDckIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUFRO1FBRVIsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUNULENBQUk7UUFFSixNQUFNLE9BQU8sR0FBRyx1QkFBdUIsRUFBRSxDQUFDO1FBQzFDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBb0JGLE1BQU0sT0FBTyxhQUFhO0lBQ1AsR0FBRyxDQUFNO0lBQ1QsT0FBTyxDQUFTO0lBQ2pDLFlBQVksR0FBUSxFQUFFLElBQTJCO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxVQUFVLENBQUMsT0FBc0I7UUFDL0IsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWdCO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxPQUFnQjtRQUNuQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBa0I7UUFDdkIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQW9CO1FBQzNCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUEwQjtRQUN2QyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQixhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBK0I7UUFDakQsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0IsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBc0NELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO0lBQzFCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQVcsQ0FBQztJQUM1QixHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7Q0FDakI7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMifQ==