@camunda/connectors-element-templates 1.0.19 → 1.0.20

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 (96) hide show
  1. package/package.json +2 -2
  2. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +1 -1
  3. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +31 -31
  4. package/src/element-templates/agenticai-aiagent-job-worker.json +180 -180
  5. package/src/element-templates/agenticai-aiagent-outbound-connector.json +3080 -3080
  6. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +1 -1
  7. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +1 -1
  8. package/src/element-templates/asana-connector.json +107 -107
  9. package/src/element-templates/automation-anywhere-outbound-connector.json +575 -575
  10. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +1 -1
  11. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +1 -1
  12. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +1 -1
  13. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +1 -1
  14. package/src/element-templates/aws-bedrock-outbound-connector.json +1 -1
  15. package/src/element-templates/aws-comprehend-outbound-connector.json +1 -1
  16. package/src/element-templates/aws-dynamodb-outbound-connector.json +3079 -1727
  17. package/src/element-templates/aws-eventbridge-connector-boundary.json +33 -33
  18. package/src/element-templates/aws-eventbridge-connector-intermediate.json +28 -28
  19. package/src/element-templates/aws-eventbridge-connector-start-event.json +15 -15
  20. package/src/element-templates/aws-eventbridge-outbound-connector.json +289 -289
  21. package/src/element-templates/aws-lambda-outbound-connector.json +45 -45
  22. package/src/element-templates/aws-s3-outbound-connector.json +705 -32
  23. package/src/element-templates/aws-sagemaker-outbound-connector.json +1 -1
  24. package/src/element-templates/aws-sns-inbound-boundary.json +203 -203
  25. package/src/element-templates/aws-sns-inbound-intermediate.json +217 -217
  26. package/src/element-templates/aws-sns-inbound-message-start.json +237 -237
  27. package/src/element-templates/aws-sns-inbound-start-event.json +6 -6
  28. package/src/element-templates/aws-sns-outbound-connector.json +68 -68
  29. package/src/element-templates/aws-sqs-boundary-connector.json +415 -415
  30. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +500 -500
  31. package/src/element-templates/aws-sqs-outbound-connector.json +390 -390
  32. package/src/element-templates/aws-sqs-start-event-connector.json +409 -409
  33. package/src/element-templates/aws-textract-outbound-connector.json +124 -124
  34. package/src/element-templates/azure-blobstorage-outbound-connector.json +1 -1
  35. package/src/element-templates/azure-open-ai-connector.json +1 -1
  36. package/src/element-templates/blue-prism-connector.json +52 -52
  37. package/src/element-templates/box-outbound-connector.json +49 -49
  38. package/src/element-templates/csv-outbound-connector.json +452 -3
  39. package/src/element-templates/easy-post-connector.json +262 -262
  40. package/src/element-templates/email-outbound-connector.json +1 -1
  41. package/src/element-templates/embeddings-vector-database-outbound-connector.json +1 -1
  42. package/src/element-templates/github-connector.json +10051 -10051
  43. package/src/element-templates/github-webhook-connector-intermediate.json +25 -25
  44. package/src/element-templates/github-webhook-connector-start-event.json +26 -26
  45. package/src/element-templates/gitlab-connector.json +1081 -1081
  46. package/src/element-templates/google-cloud-storage-outbound-connector.json +1 -1
  47. package/src/element-templates/google-drive-outbound-connector.json +361 -361
  48. package/src/element-templates/google-gemini-outbound-connector.json +33 -33
  49. package/src/element-templates/google-maps-platform-connector.json +81 -81
  50. package/src/element-templates/google-sheets-outbound-connector.json +1124 -1124
  51. package/src/element-templates/graphql-outbound-connector.json +1813 -1706
  52. package/src/element-templates/http-json-connector.json +3412 -1814
  53. package/src/element-templates/http-polling-boundary-catch-event-connector.json +102 -0
  54. package/src/element-templates/http-polling-connector.json +825 -723
  55. package/src/element-templates/hubspot-outbound-connector.json +59 -59
  56. package/src/element-templates/hugging-face-connector.json +75 -75
  57. package/src/element-templates/jdbc-outbound-connector.json +1 -1
  58. package/src/element-templates/kafka-inbound-connector-boundary.json +976 -976
  59. package/src/element-templates/kafka-inbound-connector-intermediate.json +501 -501
  60. package/src/element-templates/kafka-inbound-connector-start-message.json +532 -532
  61. package/src/element-templates/kafka-outbound-connector.json +177 -177
  62. package/src/element-templates/microsoft-office365-mail-connector.json +1059 -73
  63. package/src/element-templates/microsoft-teams-outbound-connector.json +4489 -4489
  64. package/src/element-templates/openai-connector.json +238 -238
  65. package/src/element-templates/operate-connector.json +136 -136
  66. package/src/element-templates/power-automate-connector.json +19 -19
  67. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +443 -443
  68. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +765 -765
  69. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +352 -352
  70. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +337 -337
  71. package/src/element-templates/rabbitmq-outbound-connector.json +326 -326
  72. package/src/element-templates/salesforce-connector.json +59 -59
  73. package/src/element-templates/send-message-connector-intermediate-throw-event.json +1 -1
  74. package/src/element-templates/send-message-connector-message-end-event.json +1 -1
  75. package/src/element-templates/send-message-connector-send-task.json +1 -1
  76. package/src/element-templates/sendgrid-outbound-connector.json +636 -636
  77. package/src/element-templates/servicenow-connector.json +1 -1
  78. package/src/element-templates/servicenow-flow-starter-connector.json +1 -1
  79. package/src/element-templates/servicenow-incident-connector.json +1 -1
  80. package/src/element-templates/slack-inbound-boundary.json +266 -266
  81. package/src/element-templates/slack-inbound-intermediate.json +557 -557
  82. package/src/element-templates/slack-inbound-message-start.json +334 -334
  83. package/src/element-templates/slack-inbound-start-event.json +128 -128
  84. package/src/element-templates/slack-outbound-connector.json +1415 -1415
  85. package/src/element-templates/soap-outbound-connector.json +1 -1
  86. package/src/element-templates/twilio-connector.json +354 -354
  87. package/src/element-templates/twilio-webhook-boundary-connector.json +20 -20
  88. package/src/element-templates/twilio-webhook-connector.json +29 -29
  89. package/src/element-templates/twilio-webhook-intermediate-connector.json +25 -25
  90. package/src/element-templates/twilio-webhook-message-start-connector.json +17 -17
  91. package/src/element-templates/uipath-connector.json +56 -56
  92. package/src/element-templates/webhook-connector-boundary.json +114 -114
  93. package/src/element-templates/webhook-connector-intermediate.json +1129 -1129
  94. package/src/element-templates/webhook-connector-start-event.json +1293 -1293
  95. package/src/element-templates/webhook-connector-start-message.json +537 -537
  96. package/src/element-templates/whatsapp-connector.json +51 -51
@@ -1,4 +1,424 @@
1
1
  [
2
+ {
3
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
+ "name": "CSV Connector",
5
+ "id": "io.camunda.connectors.csv",
6
+ "keywords": [
7
+ "read CSV",
8
+ "write CSV",
9
+ "parse CSV",
10
+ "export CSV",
11
+ "import CSV",
12
+ "tabular data",
13
+ "data export",
14
+ "spreadsheet"
15
+ ],
16
+ "version": 1,
17
+ "category": {
18
+ "id": "connectors",
19
+ "name": "Connectors"
20
+ },
21
+ "appliesTo": ["bpmn:Task"],
22
+ "elementType": {
23
+ "value": "bpmn:ServiceTask"
24
+ },
25
+ "engines": {
26
+ "camunda": "^8.8"
27
+ },
28
+ "groups": [
29
+ {
30
+ "id": "operation",
31
+ "label": "Operation"
32
+ },
33
+ {
34
+ "id": "connector",
35
+ "label": "Connector"
36
+ },
37
+ {
38
+ "id": "output",
39
+ "label": "Output mapping"
40
+ },
41
+ {
42
+ "id": "error",
43
+ "label": "Error handling"
44
+ },
45
+ {
46
+ "id": "retries",
47
+ "label": "Retries"
48
+ }
49
+ ],
50
+ "properties": [
51
+ {
52
+ "value": "io.camunda:csv-connector",
53
+ "binding": {
54
+ "property": "type",
55
+ "type": "zeebe:taskDefinition"
56
+ },
57
+ "type": "Hidden"
58
+ },
59
+ {
60
+ "id": "operation",
61
+ "label": "Operation",
62
+ "description": "The operation to execute",
63
+ "value": "readCsv",
64
+ "group": "operation",
65
+ "binding": {
66
+ "key": "operation",
67
+ "type": "zeebe:taskHeader"
68
+ },
69
+ "type": "Dropdown",
70
+ "choices": [
71
+ {
72
+ "name": "Read CSV",
73
+ "value": "readCsv"
74
+ },
75
+ {
76
+ "name": "Write CSV",
77
+ "value": "writeCsv"
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "id": "readCsv:data",
83
+ "label": "Data",
84
+ "optional": false,
85
+ "feel": "optional",
86
+ "group": "operation",
87
+ "binding": {
88
+ "name": "data",
89
+ "type": "zeebe:input"
90
+ },
91
+ "condition": {
92
+ "allMatch": [
93
+ {
94
+ "property": "operation",
95
+ "equals": "readCsv",
96
+ "type": "simple"
97
+ }
98
+ ]
99
+ },
100
+ "tooltip": "CSV as a document or text",
101
+ "type": "String"
102
+ },
103
+ {
104
+ "id": "readCsv:format.delimiter",
105
+ "label": "Delimiter",
106
+ "optional": false,
107
+ "value": ",",
108
+ "feel": "optional",
109
+ "group": "operation",
110
+ "binding": {
111
+ "name": "format.delimiter",
112
+ "type": "zeebe:input"
113
+ },
114
+ "condition": {
115
+ "allMatch": [
116
+ {
117
+ "property": "operation",
118
+ "equals": "readCsv",
119
+ "type": "simple"
120
+ }
121
+ ]
122
+ },
123
+ "tooltip": "CSV column delimiter",
124
+ "type": "String"
125
+ },
126
+ {
127
+ "id": "readCsv:format.skipHeaderRecord",
128
+ "label": "Skip Header Record",
129
+ "optional": false,
130
+ "value": true,
131
+ "feel": "static",
132
+ "group": "operation",
133
+ "binding": {
134
+ "name": "format.skipHeaderRecord",
135
+ "type": "zeebe:input"
136
+ },
137
+ "condition": {
138
+ "allMatch": [
139
+ {
140
+ "property": "operation",
141
+ "equals": "readCsv",
142
+ "type": "simple"
143
+ }
144
+ ]
145
+ },
146
+ "tooltip": "Skips the first row to be not included in the final records.",
147
+ "type": "Boolean"
148
+ },
149
+ {
150
+ "id": "readCsv:format.headers",
151
+ "label": "Headers",
152
+ "optional": false,
153
+ "feel": "required",
154
+ "group": "operation",
155
+ "binding": {
156
+ "name": "format.headers",
157
+ "type": "zeebe:input"
158
+ },
159
+ "condition": {
160
+ "allMatch": [
161
+ {
162
+ "property": "operation",
163
+ "equals": "readCsv",
164
+ "type": "simple"
165
+ }
166
+ ]
167
+ },
168
+ "tooltip": "Mapping of the columns if not included in the CSV itself in the first row.",
169
+ "type": "String"
170
+ },
171
+ {
172
+ "id": "readCsv:rowType",
173
+ "label": "Row Type",
174
+ "optional": false,
175
+ "value": "Object",
176
+ "group": "operation",
177
+ "binding": {
178
+ "name": "rowType",
179
+ "type": "zeebe:input"
180
+ },
181
+ "condition": {
182
+ "allMatch": [
183
+ {
184
+ "property": "operation",
185
+ "equals": "readCsv",
186
+ "type": "simple"
187
+ }
188
+ ]
189
+ },
190
+ "tooltip": "Type of the row in the CSV file, either Object or Array",
191
+ "type": "Dropdown",
192
+ "choices": [
193
+ {
194
+ "name": "Object",
195
+ "value": "Object"
196
+ },
197
+ {
198
+ "name": "Array",
199
+ "value": "Array"
200
+ }
201
+ ]
202
+ },
203
+ {
204
+ "id": "readCsv:recordMapper",
205
+ "label": "Record mapping",
206
+ "description": "",
207
+ "feel": "required",
208
+ "group": "operation",
209
+ "binding": {
210
+ "key": "recordMapper",
211
+ "type": "zeebe:taskHeader"
212
+ },
213
+ "condition": {
214
+ "allMatch": [
215
+ {
216
+ "property": "operation",
217
+ "equals": "readCsv",
218
+ "type": "simple"
219
+ }
220
+ ]
221
+ },
222
+ "tooltip": "<a href=\"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/\">FEEL</a> function that allows to map each <code>record</code>. Returning <code>null</code> will exclude a record from the final results.",
223
+ "placeholder": "",
224
+ "type": "String"
225
+ },
226
+ {
227
+ "id": "writeCsv:data",
228
+ "label": "Data",
229
+ "feel": "required",
230
+ "group": "operation",
231
+ "binding": {
232
+ "name": "data",
233
+ "type": "zeebe:input"
234
+ },
235
+ "condition": {
236
+ "allMatch": [
237
+ {
238
+ "property": "operation",
239
+ "equals": "writeCsv",
240
+ "type": "simple"
241
+ }
242
+ ]
243
+ },
244
+ "type": "String"
245
+ },
246
+ {
247
+ "id": "writeCsv:createDocument",
248
+ "label": "Create document",
249
+ "group": "operation",
250
+ "binding": {
251
+ "name": "createDocument",
252
+ "type": "zeebe:input"
253
+ },
254
+ "condition": {
255
+ "allMatch": [
256
+ {
257
+ "property": "operation",
258
+ "equals": "writeCsv",
259
+ "type": "simple"
260
+ }
261
+ ]
262
+ },
263
+ "type": "Boolean"
264
+ },
265
+ {
266
+ "id": "writeCsv:format.delimiter",
267
+ "label": "Delimiter",
268
+ "optional": false,
269
+ "value": ",",
270
+ "feel": "optional",
271
+ "group": "operation",
272
+ "binding": {
273
+ "name": "format.delimiter",
274
+ "type": "zeebe:input"
275
+ },
276
+ "condition": {
277
+ "allMatch": [
278
+ {
279
+ "property": "operation",
280
+ "equals": "writeCsv",
281
+ "type": "simple"
282
+ }
283
+ ]
284
+ },
285
+ "tooltip": "CSV column delimiter",
286
+ "type": "String"
287
+ },
288
+ {
289
+ "id": "writeCsv:format.skipHeaderRecord",
290
+ "label": "Skip Header Record",
291
+ "optional": false,
292
+ "value": true,
293
+ "feel": "static",
294
+ "group": "operation",
295
+ "binding": {
296
+ "name": "format.skipHeaderRecord",
297
+ "type": "zeebe:input"
298
+ },
299
+ "condition": {
300
+ "allMatch": [
301
+ {
302
+ "property": "operation",
303
+ "equals": "writeCsv",
304
+ "type": "simple"
305
+ }
306
+ ]
307
+ },
308
+ "tooltip": "Skips the first row to be not included in the final records.",
309
+ "type": "Boolean"
310
+ },
311
+ {
312
+ "id": "writeCsv:format.headers",
313
+ "label": "Headers",
314
+ "optional": false,
315
+ "feel": "required",
316
+ "group": "operation",
317
+ "binding": {
318
+ "name": "format.headers",
319
+ "type": "zeebe:input"
320
+ },
321
+ "condition": {
322
+ "allMatch": [
323
+ {
324
+ "property": "operation",
325
+ "equals": "writeCsv",
326
+ "type": "simple"
327
+ }
328
+ ]
329
+ },
330
+ "tooltip": "Mapping of the columns if not included in the CSV itself in the first row.",
331
+ "type": "String"
332
+ },
333
+ {
334
+ "id": "version",
335
+ "label": "Version",
336
+ "description": "Version of the element template",
337
+ "value": "1",
338
+ "group": "connector",
339
+ "binding": {
340
+ "key": "elementTemplateVersion",
341
+ "type": "zeebe:taskHeader"
342
+ },
343
+ "type": "Hidden"
344
+ },
345
+ {
346
+ "id": "id",
347
+ "label": "ID",
348
+ "description": "ID of the element template",
349
+ "value": "io.camunda.connectors.csv",
350
+ "group": "connector",
351
+ "binding": {
352
+ "key": "elementTemplateId",
353
+ "type": "zeebe:taskHeader"
354
+ },
355
+ "type": "Hidden"
356
+ },
357
+ {
358
+ "id": "resultVariable",
359
+ "label": "Result variable",
360
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
361
+ "group": "output",
362
+ "binding": {
363
+ "key": "resultVariable",
364
+ "type": "zeebe:taskHeader"
365
+ },
366
+ "type": "String"
367
+ },
368
+ {
369
+ "id": "resultExpression",
370
+ "label": "Result expression",
371
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
372
+ "feel": "required",
373
+ "group": "output",
374
+ "binding": {
375
+ "key": "resultExpression",
376
+ "type": "zeebe:taskHeader"
377
+ },
378
+ "type": "Text"
379
+ },
380
+ {
381
+ "id": "errorExpression",
382
+ "label": "Error expression",
383
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
384
+ "feel": "required",
385
+ "group": "error",
386
+ "binding": {
387
+ "key": "errorExpression",
388
+ "type": "zeebe:taskHeader"
389
+ },
390
+ "type": "Text"
391
+ },
392
+ {
393
+ "id": "retryCount",
394
+ "label": "Retries",
395
+ "description": "Number of retries",
396
+ "value": "3",
397
+ "feel": "optional",
398
+ "group": "retries",
399
+ "binding": {
400
+ "property": "retries",
401
+ "type": "zeebe:taskDefinition"
402
+ },
403
+ "type": "String"
404
+ },
405
+ {
406
+ "id": "retryBackoff",
407
+ "label": "Retry backoff",
408
+ "description": "ISO-8601 duration to wait between retries",
409
+ "value": "PT0S",
410
+ "group": "retries",
411
+ "binding": {
412
+ "key": "retryBackoff",
413
+ "type": "zeebe:taskHeader"
414
+ },
415
+ "type": "String"
416
+ }
417
+ ],
418
+ "icon": {
419
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyMSAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wLjUgM0MwLjUgMS44OTU0MyAxLjM5NTQzIDEgMi41IDFIMTguNUMxOS42MDQ2IDEgMjAuNSAxLjg5NTQzIDIwLjUgM1YxOUMyMC41IDIwLjEwNDYgMTkuNjA0NiAyMSAxOC41IDIxSDIuNUMxLjM5NTQzIDIxIDAuNSAyMC4xMDQ2IDAuNSAxOVYzWiIgZmlsbD0iI0ZGQjdDOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTE2LjA0NzkgMTQuMjY0NEMxNS44Mzg5IDE0LjI2NDQgMTUuNjY4MyAxNC4yMjAzIDE1LjUzNjIgMTQuMTMyM0MxNS40MDk3IDE0LjA0NDMgMTUuMzAyNCAxMy45MDQgMTUuMjE0NCAxMy43MTE0TDEzLjIxNzEgOS4zMDQyNEMxMy4xMjkxIDkuMTExNjcgMTMuMTAxNiA4LjkzODM1IDEzLjEzNDYgOC43ODQzQzEzLjE2NzYgOC42MzAyNCAxMy4yNDQ2IDguNTExOTQgMTMuMzY1NyA4LjQyOTQxQzEzLjQ4NjcgOC4zNDEzOCAxMy42MzggOC4yOTczNiAxMy44MTk2IDguMjk3MzZDMTQuMDQ1MiA4LjI5NzM2IDE0LjIxMyA4LjM0Njg4IDE0LjMyMyA4LjQ0NTkyQzE0LjQzODYgOC41NDQ5NiAxNC41Mzc2IDguNjkwNzYgMTQuNjIwMiA4Ljg4MzMzTDE2LjMwMzggMTIuNzc4OEgxNS44NDE2TDE3LjUyNTIgOC44NzUwOEMxNy42MDc4IDguNjgyNTEgMTcuNzA2OCA4LjUzOTQ1IDE3LjgyMjQgOC40NDU5MkMxNy45Mzc5IDguMzQ2ODggMTguMTAwMiA4LjI5NzM2IDE4LjMwOTMgOC4yOTczNkMxOC40Nzk5IDguMjk3MzYgMTguNjIyOSA4LjM0MTM4IDE4LjczODUgOC40Mjk0MUMxOC44NTQgOC41MTE5NCAxOC45MjU1IDguNjMwMjQgMTguOTUzIDguNzg0M0MxOC45ODYgOC45MzgzNSAxOC45NTg1IDkuMTExNjcgMTguODcwNSA5LjMwNDI0TDE2Ljg2NSAxMy43MTE0QzE2Ljc4MjUgMTMuOTA0IDE2LjY3NzkgMTQuMDQ0MyAxNi41NTE0IDE0LjEzMjNDMTYuNDI0OCAxNC4yMjAzIDE2LjI1NyAxNC4yNjQ0IDE2LjA0NzkgMTQuMjY0NFoiIGZpbGw9ImJsYWNrIi8+CiAgICA8cGF0aCBkPSJNMTAuMjI3MiAxNC4yODA4QzEwLjAwNzEgMTQuMjgwOCA5Ljc3NjA0IDE0LjI2NDMgOS41MzM5NSAxNC4yMzEyQzkuMjk3MzYgMTQuMjAzNyA5LjA3MTc4IDE0LjE1OTcgOC44NTcyIDE0LjA5OTJDOC42NDI2MiAxNC4wMzg3IDguNDUwMDQgMTMuOTY3MSA4LjI3OTQ4IDEzLjg4NDZDOC4xMzA5MiAxMy44MTMxIDguMDI2MzggMTMuNzE5NiA3Ljk2NTg2IDEzLjYwNEM3LjkwNTM0IDEzLjQ4MyA3Ljg4MzMzIDEzLjM1NjQgNy44OTk4NCAxMy4yMjQ0QzcuOTE2MzQgMTMuMDkyMyA3Ljk2MzExIDEyLjk3NjggOC4wNDAxNCAxMi44Nzc3QzguMTE3MTcgMTIuNzczMiA4LjIxODk2IDEyLjcwNDQgOC4zNDU1IDEyLjY3MTRDOC40NzIwNSAxMi42MzI5IDguNjE1MTEgMTIuNjQ5NCA4Ljc3NDY3IDEyLjcyMDlDOC45ODM3NCAxMi44MiA5LjIyMDMzIDEyLjg5NyA5LjQ4NDQzIDEyLjk1MkM5Ljc0ODUzIDEzLjAwNyA5Ljk5NjEyIDEzLjAzNDUgMTAuMjI3MiAxMy4wMzQ1QzEwLjU5MDMgMTMuMDM0NSAxMC44NDM0IDEyLjk4NzggMTAuOTg2NSAxMi44OTQyQzExLjEzNTEgMTIuNzk1MiAxMS4yMDkzIDEyLjY3NDIgMTEuMjA5MyAxMi41MzExQzExLjIwOTMgMTIuNDA0NiAxMS4xNTcxIDEyLjMwMjggMTEuMDUyNSAxMi4yMjU3QzEwLjk1MzUgMTIuMTQ4NyAxMC43NzQ3IDEyLjA4MjcgMTAuNTE2MSAxMi4wMjc3TDkuNTUwNDYgMTEuODIxM0M5LjAyMjI2IDExLjcxMTMgOC42Mjg4NiAxMS41MTg3IDguMzcwMjYgMTEuMjQzNkM4LjExMTY3IDEwLjk2ODUgNy45ODIzNyAxMC42MTM2IDcuOTgyMzcgMTAuMTc5QzcuOTgyMzcgOS44OTI4NyA4LjA0MDE0IDkuNjM0MjcgOC4xNTU2OCA5LjQwMzE4QzguMjc2NzMgOS4xNjY1OSA4LjQ0NDU0IDguOTY1NzcgOC42NTkxMiA4LjgwMDcxQzguODc5MiA4LjYzNTY0IDkuMTM3OCA4LjUwOTEgOS40MzQ5MSA4LjQyMTA2QzkuNzM3NTMgOC4zMjc1MyAxMC4wNzMyIDguMjgwNzYgMTAuNDQxOCA4LjI4MDc2QzEwLjcyNzkgOC4yODA3NiAxMS4wMTY4IDguMzEzNzcgMTEuMzA4NCA4LjM3OThDMTEuNjA1NSA4LjQ0MDMyIDExLjg2MTMgOC41MzM4NiAxMi4wNzU5IDguNjYwNEMxMi4yMDI1IDguNzI2NDMgMTIuMjkzMiA4LjgxNzIxIDEyLjM0ODMgOC45MzI3NkMxMi40MDMzIDkuMDQ4MyAxMi40MjUzIDkuMTY5MzQgMTIuNDE0MyA5LjI5NTg5QzEyLjQwMzMgOS40MTY5NCAxMi4zNTkzIDkuNTI0MjMgMTIuMjgyMiA5LjYxNzc2QzEyLjIxMDcgOS43MTEzIDEyLjExMTcgOS43NzQ1NyAxMS45ODUxIDkuODA3NThDMTEuODY0MSA5LjgzNTA5IDExLjcxODMgOS44MTMwOSAxMS41NDc3IDkuNzQxNTZDMTEuMzg4MSA5LjY3MDAzIDExLjIwNjYgOS42MTc3NiAxMS4wMDMgOS41ODQ3NUMxMC44MDQ5IDkuNTQ2MjQgMTAuNjEyNCA5LjUyNjk4IDEwLjQyNTMgOS41MjY5OEMxMC4yMjE3IDkuNTI2OTggMTAuMDQ4NCA5LjU1MTc0IDkuOTA1MzQgOS42MDEyNkM5Ljc2MjI5IDkuNjQ1MjcgOS42NTIyNCA5LjcxMTMgOS41NzUyMiA5Ljc5OTMzQzkuNTAzNjkgOS44ODczNiA5LjQ2NzkzIDkuOTg5MTUgOS40Njc5MyAxMC4xMDQ3QzkuNDY3OTMgMTAuMjIwMiA5LjUxNDY5IDEwLjMxOTMgOS42MDgyMyAxMC40MDE4QzkuNzA3MjYgMTAuNDc4OCA5Ljg4NjA4IDEwLjU0NDkgMTAuMTQ0NyAxMC41OTk5TDExLjEwMiAxMC44MDYyQzExLjYzNTcgMTAuOTIxOCAxMi4wMzQ2IDExLjExMTYgMTIuMjk4NyAxMS4zNzU3QzEyLjU2MjggMTEuNjM5OCAxMi42OTQ5IDExLjk4MzcgMTIuNjk0OSAxMi40MDczQzEyLjY5NDkgMTIuNjkzNCAxMi42MzcxIDEyLjk1MiAxMi41MjE2IDEzLjE4MzFDMTIuNDA2IDEzLjQxNDIgMTIuMjQxIDEzLjYxMjMgMTIuMDI2NCAxMy43NzczQzExLjgxMTggMTMuOTM2OSAxMS41NTMyIDE0LjA2MDcgMTEuMjUwNiAxNC4xNDg3QzEwLjk0OCAxNC4yMzY3IDEwLjYwNjkgMTQuMjgwOCAxMC4yMjcyIDE0LjI4MDhaIiBmaWxsPSJibGFjayIvPgogICAgPHBhdGggZD0iTTUuMjg3ODMgMTQuMjgwOEM0LjY0NDA5IDE0LjI4MDggNC4wOTExMyAxNC4xNTcgMy42Mjg5NiAxMy45MDk0QzMuMTY2NzggMTMuNjYxOCAyLjgxMTkgMTMuMzEyNCAyLjU2NDMxIDEyLjg2MTJDMi4zMjIyMiAxMi40MTAxIDIuMjAxMTcgMTEuODgxOSAyLjIwMTE3IDExLjI3NjZDMi4yMDExNyAxMC44MjU1IDIuMjY5OTUgMTAuNDE1NiAyLjQwNzUgMTAuMDQ2OUMyLjU1MDU1IDkuNjc4MjkgMi43NTQxMyA5LjM2MTkyIDMuMDE4MjMgOS4wOTc4MkMzLjI4NzgzIDguODMzNzIgMy42MTI0NSA4LjYzMjg5IDMuOTkyMDkgOC40OTUzNEM0LjM3NzI0IDguMzUyMjkgNC44MDkxNSA4LjI4MDc2IDUuMjg3ODMgOC4yODA3NkM1LjU0MDkyIDguMjgwNzYgNS44MDIyNyA4LjMxMTAyIDYuMDcxODcgOC4zNzE1NUM2LjM0Njk4IDguNDI2NTcgNi41ODkwNyA4LjUxMTg1IDYuNzk4MTUgOC42MjczOUM2Ljk1MjIgOC43MDk5MiA3LjA1OTQ5IDguODE0NDYgNy4xMjAwMiA4Ljk0MTAxQzcuMTgwNTQgOS4wNjc1NiA3LjE5OTggOS4xOTY4NiA3LjE3Nzc5IDkuMzI4OUM3LjE2MTI4IDkuNDYwOTUgNy4xMTQ1MSA5LjU3OTI1IDcuMDM3NDkgOS42ODM3OUM2Ljk2MDQ2IDkuNzg4MzMgNi44NjE0MiA5Ljg1OTg1IDYuNzQwMzcgOS44OTgzN0M2LjYxOTMzIDkuOTMxMzggNi40ODcyOCA5LjkxMjEyIDYuMzQ0MjMgOS44NDA2QzYuMTc5MTYgOS43NjM1NyA2LjAxNDEgOS43MDU4IDUuODQ5MDQgOS42NjcyOEM1LjY4OTQ4IDkuNjIzMjcgNS41MjE2NyA5LjYwMTI2IDUuMzQ1NiA5LjYwMTI2QzUuMDA0NDcgOS42MDEyNiA0LjcxODM3IDkuNjY3MjggNC40ODcyOCA5Ljc5OTMzQzQuMjYxNjkgOS45MjU4OCA0LjA5MTEzIDEwLjExMjkgMy45NzU1OSAxMC4zNjA1QzMuODYwMDQgMTAuNjA4MSAzLjgwMjI3IDEwLjkxMzUgMy44MDIyNyAxMS4yNzY2QzMuODAyMjcgMTEuNjM5OCAzLjg2MDA0IDExLjk0NzkgMy45NzU1OSAxMi4yMDFDNC4wOTExMyAxMi40NDg2IDQuMjYxNjkgMTIuNjM4NCA0LjQ4NzI4IDEyLjc3MDRDNC43MTgzNyAxMi44OTcgNS4wMDQ0NyAxMi45NjAzIDUuMzQ1NiAxMi45NjAzQzUuNDg4NjUgMTIuOTYwMyA1LjY0MjcxIDEyLjk0MzggNS44MDc3NyAxMi45MTA3QzUuOTcyODQgMTIuODcyMiA2LjEzNTE1IDEyLjgxNDUgNi4yOTQ3MSAxMi43Mzc0QzYuNDU5NzcgMTIuNjY1OSA2LjYwNTU3IDEyLjY0NjYgNi43MzIxMiAxMi42Nzk3QzYuODY0MTcgMTIuNzEyNyA2Ljk2ODcxIDEyLjc3ODcgNy4wNDU3NCAxMi44Nzc3QzcuMTI4MjcgMTIuOTc2OCA3LjE4MDU0IDEzLjA5MjMgNy4yMDI1NSAxMy4yMjQ0QzcuMjI0NTYgMTMuMzUwOSA3LjIwNTMgMTMuNDc3NSA3LjE0NDc4IDEzLjYwNEM3LjA4OTc2IDEzLjczMDYgNi45OTA3MiAxMy44MzIzIDYuODQ3NjYgMTMuOTA5NEM2LjY1NTA5IDE0LjAyNDkgNi40MTU3NSAxNC4xMTU3IDYuMTI5NjUgMTQuMTgxN0M1Ljg0OTA0IDE0LjI0NzcgNS41Njg0MyAxNC4yODA4IDUuMjg3ODMgMTQuMjgwOFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="
420
+ }
421
+ },
2
422
  {
3
423
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
424
  "name": "CSV Connector",
@@ -393,6 +813,7 @@
393
813
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
394
814
  "name": "CSV Connector",
395
815
  "id": "io.camunda.connectors.csv",
816
+ "description": "Read or write CSV documents — parse a CSV into structured records or render rows back into CSV.",
396
817
  "keywords": [
397
818
  "read CSV",
398
819
  "write CSV",
@@ -403,7 +824,7 @@
403
824
  "data export",
404
825
  "spreadsheet"
405
826
  ],
406
- "version": 1,
827
+ "version": 2,
407
828
  "category": {
408
829
  "id": "connectors",
409
830
  "name": "Connectors"
@@ -724,7 +1145,7 @@
724
1145
  "id": "version",
725
1146
  "label": "Version",
726
1147
  "description": "Version of the element template",
727
- "value": "1",
1148
+ "value": "2",
728
1149
  "group": "connector",
729
1150
  "binding": {
730
1151
  "key": "elementTemplateVersion",
@@ -796,7 +1217,7 @@
796
1217
  "id": "retryBackoff",
797
1218
  "label": "Retry backoff",
798
1219
  "description": "ISO-8601 duration to wait between retries",
799
- "value": "PT0S",
1220
+ "value": "PT30S",
800
1221
  "group": "retries",
801
1222
  "binding": {
802
1223
  "key": "retryBackoff",
@@ -805,6 +1226,34 @@
805
1226
  "type": "String"
806
1227
  }
807
1228
  ],
1229
+ "steps": [
1230
+ {
1231
+ "name": "Read CSV",
1232
+ "description": "Read a CSV document and return its records",
1233
+ "keywords": ["read csv", "parse csv", "import csv"],
1234
+ "presetId": "operation_readCsv"
1235
+ },
1236
+ {
1237
+ "name": "Write CSV",
1238
+ "description": "Render rows as a CSV document",
1239
+ "keywords": ["write csv", "export csv", "generate csv"],
1240
+ "presetId": "operation_writeCsv"
1241
+ }
1242
+ ],
1243
+ "presets": [
1244
+ {
1245
+ "id": "operation_readCsv",
1246
+ "properties": {
1247
+ "operation": "readCsv"
1248
+ }
1249
+ },
1250
+ {
1251
+ "id": "operation_writeCsv",
1252
+ "properties": {
1253
+ "operation": "writeCsv"
1254
+ }
1255
+ }
1256
+ ],
808
1257
  "icon": {
809
1258
  "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyMSAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wLjUgM0MwLjUgMS44OTU0MyAxLjM5NTQzIDEgMi41IDFIMTguNUMxOS42MDQ2IDEgMjAuNSAxLjg5NTQzIDIwLjUgM1YxOUMyMC41IDIwLjEwNDYgMTkuNjA0NiAyMSAxOC41IDIxSDIuNUMxLjM5NTQzIDIxIDAuNSAyMC4xMDQ2IDAuNSAxOVYzWiIgZmlsbD0iI0ZGQjdDOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTE2LjA0NzkgMTQuMjY0NEMxNS44Mzg5IDE0LjI2NDQgMTUuNjY4MyAxNC4yMjAzIDE1LjUzNjIgMTQuMTMyM0MxNS40MDk3IDE0LjA0NDMgMTUuMzAyNCAxMy45MDQgMTUuMjE0NCAxMy43MTE0TDEzLjIxNzEgOS4zMDQyNEMxMy4xMjkxIDkuMTExNjcgMTMuMTAxNiA4LjkzODM1IDEzLjEzNDYgOC43ODQzQzEzLjE2NzYgOC42MzAyNCAxMy4yNDQ2IDguNTExOTQgMTMuMzY1NyA4LjQyOTQxQzEzLjQ4NjcgOC4zNDEzOCAxMy42MzggOC4yOTczNiAxMy44MTk2IDguMjk3MzZDMTQuMDQ1MiA4LjI5NzM2IDE0LjIxMyA4LjM0Njg4IDE0LjMyMyA4LjQ0NTkyQzE0LjQzODYgOC41NDQ5NiAxNC41Mzc2IDguNjkwNzYgMTQuNjIwMiA4Ljg4MzMzTDE2LjMwMzggMTIuNzc4OEgxNS44NDE2TDE3LjUyNTIgOC44NzUwOEMxNy42MDc4IDguNjgyNTEgMTcuNzA2OCA4LjUzOTQ1IDE3LjgyMjQgOC40NDU5MkMxNy45Mzc5IDguMzQ2ODggMTguMTAwMiA4LjI5NzM2IDE4LjMwOTMgOC4yOTczNkMxOC40Nzk5IDguMjk3MzYgMTguNjIyOSA4LjM0MTM4IDE4LjczODUgOC40Mjk0MUMxOC44NTQgOC41MTE5NCAxOC45MjU1IDguNjMwMjQgMTguOTUzIDguNzg0M0MxOC45ODYgOC45MzgzNSAxOC45NTg1IDkuMTExNjcgMTguODcwNSA5LjMwNDI0TDE2Ljg2NSAxMy43MTE0QzE2Ljc4MjUgMTMuOTA0IDE2LjY3NzkgMTQuMDQ0MyAxNi41NTE0IDE0LjEzMjNDMTYuNDI0OCAxNC4yMjAzIDE2LjI1NyAxNC4yNjQ0IDE2LjA0NzkgMTQuMjY0NFoiIGZpbGw9ImJsYWNrIi8+CiAgICA8cGF0aCBkPSJNMTAuMjI3MiAxNC4yODA4QzEwLjAwNzEgMTQuMjgwOCA5Ljc3NjA0IDE0LjI2NDMgOS41MzM5NSAxNC4yMzEyQzkuMjk3MzYgMTQuMjAzNyA5LjA3MTc4IDE0LjE1OTcgOC44NTcyIDE0LjA5OTJDOC42NDI2MiAxNC4wMzg3IDguNDUwMDQgMTMuOTY3MSA4LjI3OTQ4IDEzLjg4NDZDOC4xMzA5MiAxMy44MTMxIDguMDI2MzggMTMuNzE5NiA3Ljk2NTg2IDEzLjYwNEM3LjkwNTM0IDEzLjQ4MyA3Ljg4MzMzIDEzLjM1NjQgNy44OTk4NCAxMy4yMjQ0QzcuOTE2MzQgMTMuMDkyMyA3Ljk2MzExIDEyLjk3NjggOC4wNDAxNCAxMi44Nzc3QzguMTE3MTcgMTIuNzczMiA4LjIxODk2IDEyLjcwNDQgOC4zNDU1IDEyLjY3MTRDOC40NzIwNSAxMi42MzI5IDguNjE1MTEgMTIuNjQ5NCA4Ljc3NDY3IDEyLjcyMDlDOC45ODM3NCAxMi44MiA5LjIyMDMzIDEyLjg5NyA5LjQ4NDQzIDEyLjk1MkM5Ljc0ODUzIDEzLjAwNyA5Ljk5NjEyIDEzLjAzNDUgMTAuMjI3MiAxMy4wMzQ1QzEwLjU5MDMgMTMuMDM0NSAxMC44NDM0IDEyLjk4NzggMTAuOTg2NSAxMi44OTQyQzExLjEzNTEgMTIuNzk1MiAxMS4yMDkzIDEyLjY3NDIgMTEuMjA5MyAxMi41MzExQzExLjIwOTMgMTIuNDA0NiAxMS4xNTcxIDEyLjMwMjggMTEuMDUyNSAxMi4yMjU3QzEwLjk1MzUgMTIuMTQ4NyAxMC43NzQ3IDEyLjA4MjcgMTAuNTE2MSAxMi4wMjc3TDkuNTUwNDYgMTEuODIxM0M5LjAyMjI2IDExLjcxMTMgOC42Mjg4NiAxMS41MTg3IDguMzcwMjYgMTEuMjQzNkM4LjExMTY3IDEwLjk2ODUgNy45ODIzNyAxMC42MTM2IDcuOTgyMzcgMTAuMTc5QzcuOTgyMzcgOS44OTI4NyA4LjA0MDE0IDkuNjM0MjcgOC4xNTU2OCA5LjQwMzE4QzguMjc2NzMgOS4xNjY1OSA4LjQ0NDU0IDguOTY1NzcgOC42NTkxMiA4LjgwMDcxQzguODc5MiA4LjYzNTY0IDkuMTM3OCA4LjUwOTEgOS40MzQ5MSA4LjQyMTA2QzkuNzM3NTMgOC4zMjc1MyAxMC4wNzMyIDguMjgwNzYgMTAuNDQxOCA4LjI4MDc2QzEwLjcyNzkgOC4yODA3NiAxMS4wMTY4IDguMzEzNzcgMTEuMzA4NCA4LjM3OThDMTEuNjA1NSA4LjQ0MDMyIDExLjg2MTMgOC41MzM4NiAxMi4wNzU5IDguNjYwNEMxMi4yMDI1IDguNzI2NDMgMTIuMjkzMiA4LjgxNzIxIDEyLjM0ODMgOC45MzI3NkMxMi40MDMzIDkuMDQ4MyAxMi40MjUzIDkuMTY5MzQgMTIuNDE0MyA5LjI5NTg5QzEyLjQwMzMgOS40MTY5NCAxMi4zNTkzIDkuNTI0MjMgMTIuMjgyMiA5LjYxNzc2QzEyLjIxMDcgOS43MTEzIDEyLjExMTcgOS43NzQ1NyAxMS45ODUxIDkuODA3NThDMTEuODY0MSA5LjgzNTA5IDExLjcxODMgOS44MTMwOSAxMS41NDc3IDkuNzQxNTZDMTEuMzg4MSA5LjY3MDAzIDExLjIwNjYgOS42MTc3NiAxMS4wMDMgOS41ODQ3NUMxMC44MDQ5IDkuNTQ2MjQgMTAuNjEyNCA5LjUyNjk4IDEwLjQyNTMgOS41MjY5OEMxMC4yMjE3IDkuNTI2OTggMTAuMDQ4NCA5LjU1MTc0IDkuOTA1MzQgOS42MDEyNkM5Ljc2MjI5IDkuNjQ1MjcgOS42NTIyNCA5LjcxMTMgOS41NzUyMiA5Ljc5OTMzQzkuNTAzNjkgOS44ODczNiA5LjQ2NzkzIDkuOTg5MTUgOS40Njc5MyAxMC4xMDQ3QzkuNDY3OTMgMTAuMjIwMiA5LjUxNDY5IDEwLjMxOTMgOS42MDgyMyAxMC40MDE4QzkuNzA3MjYgMTAuNDc4OCA5Ljg4NjA4IDEwLjU0NDkgMTAuMTQ0NyAxMC41OTk5TDExLjEwMiAxMC44MDYyQzExLjYzNTcgMTAuOTIxOCAxMi4wMzQ2IDExLjExMTYgMTIuMjk4NyAxMS4zNzU3QzEyLjU2MjggMTEuNjM5OCAxMi42OTQ5IDExLjk4MzcgMTIuNjk0OSAxMi40MDczQzEyLjY5NDkgMTIuNjkzNCAxMi42MzcxIDEyLjk1MiAxMi41MjE2IDEzLjE4MzFDMTIuNDA2IDEzLjQxNDIgMTIuMjQxIDEzLjYxMjMgMTIuMDI2NCAxMy43NzczQzExLjgxMTggMTMuOTM2OSAxMS41NTMyIDE0LjA2MDcgMTEuMjUwNiAxNC4xNDg3QzEwLjk0OCAxNC4yMzY3IDEwLjYwNjkgMTQuMjgwOCAxMC4yMjcyIDE0LjI4MDhaIiBmaWxsPSJibGFjayIvPgogICAgPHBhdGggZD0iTTUuMjg3ODMgMTQuMjgwOEM0LjY0NDA5IDE0LjI4MDggNC4wOTExMyAxNC4xNTcgMy42Mjg5NiAxMy45MDk0QzMuMTY2NzggMTMuNjYxOCAyLjgxMTkgMTMuMzEyNCAyLjU2NDMxIDEyLjg2MTJDMi4zMjIyMiAxMi40MTAxIDIuMjAxMTcgMTEuODgxOSAyLjIwMTE3IDExLjI3NjZDMi4yMDExNyAxMC44MjU1IDIuMjY5OTUgMTAuNDE1NiAyLjQwNzUgMTAuMDQ2OUMyLjU1MDU1IDkuNjc4MjkgMi43NTQxMyA5LjM2MTkyIDMuMDE4MjMgOS4wOTc4MkMzLjI4NzgzIDguODMzNzIgMy42MTI0NSA4LjYzMjg5IDMuOTkyMDkgOC40OTUzNEM0LjM3NzI0IDguMzUyMjkgNC44MDkxNSA4LjI4MDc2IDUuMjg3ODMgOC4yODA3NkM1LjU0MDkyIDguMjgwNzYgNS44MDIyNyA4LjMxMTAyIDYuMDcxODcgOC4zNzE1NUM2LjM0Njk4IDguNDI2NTcgNi41ODkwNyA4LjUxMTg1IDYuNzk4MTUgOC42MjczOUM2Ljk1MjIgOC43MDk5MiA3LjA1OTQ5IDguODE0NDYgNy4xMjAwMiA4Ljk0MTAxQzcuMTgwNTQgOS4wNjc1NiA3LjE5OTggOS4xOTY4NiA3LjE3Nzc5IDkuMzI4OUM3LjE2MTI4IDkuNDYwOTUgNy4xMTQ1MSA5LjU3OTI1IDcuMDM3NDkgOS42ODM3OUM2Ljk2MDQ2IDkuNzg4MzMgNi44NjE0MiA5Ljg1OTg1IDYuNzQwMzcgOS44OTgzN0M2LjYxOTMzIDkuOTMxMzggNi40ODcyOCA5LjkxMjEyIDYuMzQ0MjMgOS44NDA2QzYuMTc5MTYgOS43NjM1NyA2LjAxNDEgOS43MDU4IDUuODQ5MDQgOS42NjcyOEM1LjY4OTQ4IDkuNjIzMjcgNS41MjE2NyA5LjYwMTI2IDUuMzQ1NiA5LjYwMTI2QzUuMDA0NDcgOS42MDEyNiA0LjcxODM3IDkuNjY3MjggNC40ODcyOCA5Ljc5OTMzQzQuMjYxNjkgOS45MjU4OCA0LjA5MTEzIDEwLjExMjkgMy45NzU1OSAxMC4zNjA1QzMuODYwMDQgMTAuNjA4MSAzLjgwMjI3IDEwLjkxMzUgMy44MDIyNyAxMS4yNzY2QzMuODAyMjcgMTEuNjM5OCAzLjg2MDA0IDExLjk0NzkgMy45NzU1OSAxMi4yMDFDNC4wOTExMyAxMi40NDg2IDQuMjYxNjkgMTIuNjM4NCA0LjQ4NzI4IDEyLjc3MDRDNC43MTgzNyAxMi44OTcgNS4wMDQ0NyAxMi45NjAzIDUuMzQ1NiAxMi45NjAzQzUuNDg4NjUgMTIuOTYwMyA1LjY0MjcxIDEyLjk0MzggNS44MDc3NyAxMi45MTA3QzUuOTcyODQgMTIuODcyMiA2LjEzNTE1IDEyLjgxNDUgNi4yOTQ3MSAxMi43Mzc0QzYuNDU5NzcgMTIuNjY1OSA2LjYwNTU3IDEyLjY0NjYgNi43MzIxMiAxMi42Nzk3QzYuODY0MTcgMTIuNzEyNyA2Ljk2ODcxIDEyLjc3ODcgNy4wNDU3NCAxMi44Nzc3QzcuMTI4MjcgMTIuOTc2OCA3LjE4MDU0IDEzLjA5MjMgNy4yMDI1NSAxMy4yMjQ0QzcuMjI0NTYgMTMuMzUwOSA3LjIwNTMgMTMuNDc3NSA3LjE0NDc4IDEzLjYwNEM3LjA4OTc2IDEzLjczMDYgNi45OTA3MiAxMy44MzIzIDYuODQ3NjYgMTMuOTA5NEM2LjY1NTA5IDE0LjAyNDkgNi40MTU3NSAxNC4xMTU3IDYuMTI5NjUgMTQuMTgxN0M1Ljg0OTA0IDE0LjI0NzcgNS41Njg0MyAxNC4yODA4IDUuMjg3ODMgMTQuMjgwOFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="
810
1259
  }