circuitdata 0.6.3 → 0.6.4
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.
- checksums.yaml +4 -4
- data/lib/circuitdata.rb +0 -1
- data/lib/circuitdata/compatibility_checker.rb +70 -30
- data/lib/circuitdata/dereferencer.rb +2 -2
- data/lib/circuitdata/profile.rb +6 -2
- data/lib/circuitdata/schema_files/v1/ottp_circuitdata_schema.json +815 -836
- data/lib/circuitdata/schema_files/v1/ottp_circuitdata_schema_definitions.json +198 -125
- data/lib/circuitdata/schema_files/v1/ottp_circuitdata_skeleton_schema.json +41 -1
- data/lib/circuitdata/tools.rb +48 -15
- data/lib/circuitdata/version.rb +1 -1
- metadata +9 -6
@@ -28,7 +28,7 @@
|
|
28
28
|
"uom": null,
|
29
29
|
"description": "The name of the manufacturer"
|
30
30
|
},
|
31
|
-
"
|
31
|
+
"ipc_sm_840_class": {
|
32
32
|
"type": "string",
|
33
33
|
"enum": ["T", "H"],
|
34
34
|
"uom": null,
|
@@ -38,6 +38,11 @@
|
|
38
38
|
"type": "string",
|
39
39
|
"uom": null,
|
40
40
|
"description": "The link to some url that gives more information or a reference to the product."
|
41
|
+
},
|
42
|
+
"accept_equivalent": {
|
43
|
+
"type": "boolean",
|
44
|
+
"uom": null,
|
45
|
+
"description": "Equivalent material to the one specified is OK to use as a replacement if true."
|
41
46
|
}
|
42
47
|
},
|
43
48
|
"aliases": "",
|
@@ -157,7 +162,7 @@
|
|
157
162
|
"descriptive_name": {
|
158
163
|
"type": "string",
|
159
164
|
"uom": null,
|
160
|
-
"description": "The name of the
|
165
|
+
"description": "The name of the stiffener. Use the official name or some name as close to it as possible"
|
161
166
|
},
|
162
167
|
"manufacturer": {
|
163
168
|
"type": "string",
|
@@ -168,6 +173,11 @@
|
|
168
173
|
"type": "string",
|
169
174
|
"uom": null,
|
170
175
|
"description": "The link to some url that gives more information or a reference to the product."
|
176
|
+
},
|
177
|
+
"accept_equivalent": {
|
178
|
+
"type": "boolean",
|
179
|
+
"uom": null,
|
180
|
+
"description": "Equivalent material to the one specified is OK to use as a replacement if true."
|
171
181
|
}
|
172
182
|
},
|
173
183
|
"aliases": "",
|
@@ -217,6 +227,25 @@
|
|
217
227
|
}
|
218
228
|
},
|
219
229
|
"elements": {
|
230
|
+
"stackup": {
|
231
|
+
"specification_level": {
|
232
|
+
"type": "string",
|
233
|
+
"enum": ["free", "separate_file", "specified"],
|
234
|
+
"enum_description": {
|
235
|
+
"free": "The manufacturer can choose the stackup that matches the rest of the requirements",
|
236
|
+
"separate_file": "A file is supplied with the package that will contain the actual stackup",
|
237
|
+
"specified": "The actual stackup is under the stackup->specified element"
|
238
|
+
},
|
239
|
+
"uom": null,
|
240
|
+
"description": "The stack up of this board"
|
241
|
+
},
|
242
|
+
"file_name": {
|
243
|
+
"type": "string",
|
244
|
+
"format": "uri",
|
245
|
+
"uom": null,
|
246
|
+
"description": "The URI of the file that specifies the stackup. Either as a path witin a project compressed file (ZIP) or as a link"
|
247
|
+
}
|
248
|
+
},
|
220
249
|
"conductive_layer": {
|
221
250
|
"count": {
|
222
251
|
"type": "number",
|
@@ -250,13 +279,13 @@
|
|
250
279
|
"type": "number",
|
251
280
|
"enum": [5.1, 8.5, 12, 17.1, 25.7, 34.3, 68.6, 102.9, 137.2, 171.5, 205.7, 240, 342.9, 480.1],
|
252
281
|
"uom": ["um"],
|
253
|
-
"description": "Finished base copper thickness following IPC Class on the up to two external layers
|
282
|
+
"description": "Finished base copper thickness following IPC Class on the up to two external layers"
|
254
283
|
},
|
255
284
|
"internal_base_copper_thickness": {
|
256
285
|
"type": "number",
|
257
286
|
"enum": [5.1, 8.5, 12, 17.1, 25.7, 34.3, 68.6, 102.9, 137.2, 171.5, 205.7, 240, 342.9, 480.1],
|
258
287
|
"uom": ["um"],
|
259
|
-
"description": "Finished base copper thickness following IPC Class on the internal layers
|
288
|
+
"description": "Finished base copper thickness following IPC Class on the internal layers"
|
260
289
|
},
|
261
290
|
"copper_foil_roughness": {
|
262
291
|
"type": "string",
|
@@ -267,7 +296,17 @@
|
|
267
296
|
"V": "Very low profile"
|
268
297
|
},
|
269
298
|
"uom": null,
|
270
|
-
"description": "The roughness of the copper foil
|
299
|
+
"description": "The roughness of the copper foil"
|
300
|
+
},
|
301
|
+
"copper_foil_type": {
|
302
|
+
"type": "string",
|
303
|
+
"enum": ["ED", "RA"],
|
304
|
+
"enum_description": {
|
305
|
+
"ED": "Electro Deposited",
|
306
|
+
"RA": "Rolled Annealed Copper"
|
307
|
+
},
|
308
|
+
"uom": null,
|
309
|
+
"description": "The type of copper foil"
|
271
310
|
},
|
272
311
|
"copper_coverage_average": {
|
273
312
|
"type": "number",
|
@@ -279,7 +318,7 @@
|
|
279
318
|
"name": {
|
280
319
|
"type": "string",
|
281
320
|
"uom": null,
|
282
|
-
"description": "The name of the Laminate. Use the official name or some name as close to it as possible
|
321
|
+
"description": "The name of the Laminate. Use the official name or some name as close to it as possible"
|
283
322
|
},
|
284
323
|
"manufacturer": {
|
285
324
|
"type": "string",
|
@@ -289,47 +328,47 @@
|
|
289
328
|
"ipc_4101_sheet": {
|
290
329
|
"type": "integer",
|
291
330
|
"uom": null,
|
292
|
-
"description": "The reference sheet number of the IPC 4101 Standard
|
331
|
+
"description": "The reference sheet number of the IPC 4101 Standard"
|
293
332
|
},
|
294
333
|
"ipc_4103_sheet": {
|
295
334
|
"type": "integer",
|
296
335
|
"uom": null,
|
297
|
-
"description": "The reference sheet number of the IPC 4103 Standard
|
336
|
+
"description": "The reference sheet number of the IPC 4103 Standard"
|
298
337
|
},
|
299
338
|
"ipc_4204_sheet": {
|
300
339
|
"type": "integer",
|
301
340
|
"uom": null,
|
302
|
-
"description": "The reference sheet number of the IPC 4204 Standard
|
341
|
+
"description": "The reference sheet number of the IPC 4204 Standard"
|
303
342
|
},
|
304
343
|
"tg_min": {
|
305
344
|
"type": "integer",
|
306
345
|
"uom": null,
|
307
|
-
"description": "The minimum Glass Transition Temperature (Tg) required
|
346
|
+
"description": "The minimum Glass Transition Temperature (Tg) required"
|
308
347
|
},
|
309
348
|
"tg_range_from": {
|
310
349
|
"type": "integer",
|
311
350
|
"uom": null,
|
312
|
-
"description": "The Glass Transition Temperature (Tg) range starts at
|
351
|
+
"description": "The Glass Transition Temperature (Tg) range starts at"
|
313
352
|
},
|
314
353
|
"tg_range_to": {
|
315
354
|
"type": "integer",
|
316
355
|
"uom": null,
|
317
|
-
"description": "The Glass Transition Temperature (Tg) range ands at
|
356
|
+
"description": "The Glass Transition Temperature (Tg) range ands at"
|
318
357
|
},
|
319
358
|
"td_min": {
|
320
359
|
"type": "integer",
|
321
360
|
"uom": null,
|
322
|
-
"description": "The minimum required temperature at which a base laminate material experiences an established percentage of weight loss using Thermograv imetric Analysis (TGA)
|
361
|
+
"description": "The minimum required temperature at which a base laminate material experiences an established percentage of weight loss using Thermograv imetric Analysis (TGA)"
|
323
362
|
},
|
324
363
|
"td_range_from": {
|
325
364
|
"type": "integer",
|
326
365
|
"uom": null,
|
327
|
-
"description": "The Td range starts at
|
366
|
+
"description": "The Td range starts at"
|
328
367
|
},
|
329
368
|
"td_range_to": {
|
330
369
|
"type": "integer",
|
331
370
|
"uom": null,
|
332
|
-
"description": "The Td range stops at
|
371
|
+
"description": "The Td range stops at"
|
333
372
|
},
|
334
373
|
"halogen_free": {
|
335
374
|
"type": "boolean",
|
@@ -349,27 +388,27 @@
|
|
349
388
|
"rw_uni_cei_11170_3": {
|
350
389
|
"type": "boolean",
|
351
390
|
"uom": null,
|
352
|
-
"description": "Railway Italy UNI CEI 11170-3 compatible
|
391
|
+
"description": "Railway Italy UNI CEI 11170-3 compatible"
|
353
392
|
},
|
354
393
|
"rw_nfpa_130": {
|
355
394
|
"type": "boolean",
|
356
395
|
"uom": null,
|
357
|
-
"description": "Railway USA NFPA 130 compatible
|
396
|
+
"description": "Railway USA NFPA 130 compatible"
|
358
397
|
},
|
359
398
|
"ul": {
|
360
399
|
"type": "boolean",
|
361
400
|
"uom": null,
|
362
|
-
"description": "UL compatible
|
401
|
+
"description": "UL compatible"
|
363
402
|
},
|
364
403
|
"link": {
|
365
404
|
"type": "string",
|
366
405
|
"uom": null,
|
367
|
-
"description": "The link to some url that gives more information or a reference to the product
|
406
|
+
"description": "The link to some url that gives more information or a reference to the product"
|
368
407
|
},
|
369
408
|
"accept_equivalent": {
|
370
409
|
"type": "boolean",
|
371
410
|
"uom": null,
|
372
|
-
"description": "Equivalent material to the one specified is OK to use as a replacement if true
|
411
|
+
"description": "Equivalent material to the one specified is OK to use as a replacement if true"
|
373
412
|
},
|
374
413
|
"aliases": "",
|
375
414
|
"descriptive_name": "Dielectrics",
|
@@ -399,7 +438,7 @@
|
|
399
438
|
"b1_lfhasl": "J-STD-003_J-STD-006 Lead-Free Solder Coating over Bare Copper (Lead-Free HASL, Lead free HASL)"
|
400
439
|
},
|
401
440
|
"uom": null,
|
402
|
-
"description": "The material/method/surface to be used in the finish
|
441
|
+
"description": "The material/method/surface to be used in the finish"
|
403
442
|
},
|
404
443
|
"area": {
|
405
444
|
"type": "number",
|
@@ -411,13 +450,13 @@
|
|
411
450
|
"color": {
|
412
451
|
"type": "string",
|
413
452
|
"uom": null,
|
414
|
-
"description": "This describes the color based on the name of the color; green, black, blue, red, white, yellow. If a specific color needs to be defined, this can be done custom -> colors section
|
453
|
+
"description": "This describes the color based on the name of the color; green, black, blue, red, white, yellow. If a specific color needs to be defined, this can be done custom -> colors section"
|
415
454
|
},
|
416
455
|
"finish": {
|
417
456
|
"type": "string",
|
418
457
|
"enum": ["matte", "semi-matte", "glossy", "any"],
|
419
458
|
"uom": null,
|
420
|
-
"description": "The finish of the soldermask
|
459
|
+
"description": "The finish of the soldermask"
|
421
460
|
},
|
422
461
|
"material": {
|
423
462
|
"type": "string",
|
@@ -434,7 +473,7 @@
|
|
434
473
|
"color": {
|
435
474
|
"type": "string",
|
436
475
|
"uom": null,
|
437
|
-
"description": "This describes the color based on the name of the color; white, yellow. If a specific color needs to be defined, this can be done custom -> colors section
|
476
|
+
"description": "This describes the color based on the name of the color; white, yellow. If a specific color needs to be defined, this can be done custom -> colors section"
|
438
477
|
}
|
439
478
|
},
|
440
479
|
"stiffener": {
|
@@ -446,8 +485,12 @@
|
|
446
485
|
"placement": {
|
447
486
|
"type": "string",
|
448
487
|
"enum": ["top", "bottom"],
|
488
|
+
"enum_description": {
|
489
|
+
"top": "The stiffener is on top of the flexible layer(s)",
|
490
|
+
"bottom": "The stiffener is below the flexible layer(s)"
|
491
|
+
},
|
449
492
|
"uom": null,
|
450
|
-
"description": "Indicating if the stiffener is on top or bottom of the flexible layer
|
493
|
+
"description": "Indicating if the stiffener is on top or bottom of the flexible layer"
|
451
494
|
},
|
452
495
|
"thickness": {
|
453
496
|
"type": "number",
|
@@ -490,6 +533,12 @@
|
|
490
533
|
"type_of_bag": {
|
491
534
|
"type": "string",
|
492
535
|
"enum": ["a", "b", "c", "d"],
|
536
|
+
"enum_description": {
|
537
|
+
"a": "Nylon/Foil/Polyethylene",
|
538
|
+
"b": "TyvekTM/Foil/Polyethylene",
|
539
|
+
"c": "Aluminized Polyester/Polyethylene",
|
540
|
+
"d": "Plastics/Polymers (non-metallic)"
|
541
|
+
},
|
493
542
|
"uom": null,
|
494
543
|
"description": "The material of the bag to be used"
|
495
544
|
},
|
@@ -501,148 +550,148 @@
|
|
501
550
|
"esd": {
|
502
551
|
"type": "boolean",
|
503
552
|
"uom": null,
|
504
|
-
"description": "True to indicate that packaging for ESD-sensitive required
|
553
|
+
"description": "True to indicate that packaging for ESD-sensitive required"
|
505
554
|
},
|
506
555
|
"desiccant": {
|
507
556
|
"type": "boolean",
|
508
557
|
"uom": null,
|
509
|
-
"description": "True to indicate that a desiccant material is required
|
558
|
+
"description": "True to indicate that a desiccant material is required"
|
510
559
|
},
|
511
560
|
"vacuum": {
|
512
561
|
"type": "boolean",
|
513
562
|
"uom": null,
|
514
|
-
"description": "True to indicate that vacuum is needed for shrinkage - no heat rap or shrink rap allowed
|
563
|
+
"description": "True to indicate that vacuum is needed for shrinkage - no heat rap or shrink rap allowed"
|
515
564
|
}
|
516
565
|
},
|
517
566
|
"via_protection": {
|
518
567
|
"type_1": {
|
519
568
|
"type": "boolean",
|
520
569
|
"uom": null,
|
521
|
-
"description": "A via with a dry film mask material applied bridging over the via wherein no additional materials are in the hole
|
570
|
+
"description": "A via with a dry film mask material applied bridging over the via wherein no additional materials are in the hole"
|
522
571
|
},
|
523
572
|
"type_2": {
|
524
573
|
"type": "boolean",
|
525
574
|
"uom": null,
|
526
|
-
"description": "A Type I via with a secondary covering of mask material applied over the tented via
|
575
|
+
"description": "A Type I via with a secondary covering of mask material applied over the tented via"
|
527
576
|
},
|
528
577
|
"type_3": {
|
529
578
|
"type": "boolean",
|
530
579
|
"uom": null,
|
531
|
-
"description": "A via with material applied allowing partial penetration into the via. The plug material may be applied from one or both sides
|
580
|
+
"description": "A via with material applied allowing partial penetration into the via. The plug material may be applied from one or both sides"
|
532
581
|
},
|
533
582
|
"type_4a": {
|
534
583
|
"type": "boolean",
|
535
584
|
"uom": null,
|
536
|
-
"description": "A Type III via with a secondary covering of material applied over the via. The plug material may be applied from one or both sides
|
585
|
+
"description": "A Type III via with a secondary covering of material applied over the via. The plug material may be applied from one or both sides"
|
537
586
|
},
|
538
587
|
"type_4b": {
|
539
588
|
"type": "boolean",
|
540
589
|
"uom": null,
|
541
|
-
"description": "A Type III via with a secondary covering of material applied over the via. The plug material may be applied from one or both sides
|
590
|
+
"description": "A Type III via with a secondary covering of material applied over the via. The plug material may be applied from one or both sides"
|
542
591
|
},
|
543
592
|
"type_5": {
|
544
593
|
"type": "boolean",
|
545
594
|
"uom": null,
|
546
|
-
"description": "A via with material applied into the via targeting a full penetration and encapsulation of the hole
|
595
|
+
"description": "A via with material applied into the via targeting a full penetration and encapsulation of the hole"
|
547
596
|
},
|
548
597
|
"type_6a": {
|
549
598
|
"type": "boolean",
|
550
599
|
"uom": null,
|
551
|
-
"description": "A Type V via with a secondary covering of material (liquid or dry film soldermask) applied over the via. The plug material may be applied from one or both sides
|
600
|
+
"description": "A Type V via with a secondary covering of material (liquid or dry film soldermask) applied over the via. The plug material may be applied from one or both sides"
|
552
601
|
},
|
553
602
|
"type_6b": {
|
554
603
|
"type": "boolean",
|
555
604
|
"uom": null,
|
556
|
-
"description": "A Type V via with a secondary covering of material (liquid or dry film soldermask) applied over the via. The plug material may be applied from one or both sides
|
605
|
+
"description": "A Type V via with a secondary covering of material (liquid or dry film soldermask) applied over the via. The plug material may be applied from one or both sides"
|
557
606
|
},
|
558
607
|
"type_7": {
|
559
608
|
"type": "boolean",
|
560
609
|
"uom": null,
|
561
|
-
"description": "A Type V via with a secondary metallized coating covering the via. The metallization is on both sides
|
610
|
+
"description": "A Type V via with a secondary metallized coating covering the via. The metallization is on both sides"
|
562
611
|
}
|
563
612
|
},
|
564
613
|
"board": {
|
565
614
|
"size_x": {
|
566
615
|
"type": "number",
|
567
616
|
"uom": ["mm"],
|
568
|
-
"description": "The size of the board in the x-asis
|
617
|
+
"description": "The size of the board in the x-asis"
|
569
618
|
},
|
570
619
|
"size_y": {
|
571
620
|
"type": "number",
|
572
621
|
"uom": ["mm"],
|
573
|
-
"description": "The size of the board in the y-asis
|
622
|
+
"description": "The size of the board in the y-asis"
|
574
623
|
},
|
575
624
|
"thickness": {
|
576
625
|
"type": "number",
|
577
626
|
"uom": ["mm"],
|
578
|
-
"description": "The thickness of the board
|
627
|
+
"description": "The thickness of the board"
|
579
628
|
}
|
580
629
|
},
|
581
630
|
"array": {
|
582
631
|
"size_x": {
|
583
632
|
"type": "number",
|
584
633
|
"uom": ["mm"],
|
585
|
-
"description": "The size of the array in the x-asis
|
634
|
+
"description": "The size of the array in the x-asis"
|
586
635
|
},
|
587
636
|
"size_y": {
|
588
637
|
"type": "number",
|
589
638
|
"uom": ["mm"],
|
590
|
-
"description": "The size of the array in the y-asis
|
639
|
+
"description": "The size of the array in the y-asis"
|
591
640
|
},
|
592
641
|
"boards_x": {
|
593
642
|
"type": "integer",
|
594
643
|
"uom": null,
|
595
|
-
"description": "Number of boards in the panel in the x-direction
|
644
|
+
"description": "Number of boards in the panel in the x-direction"
|
596
645
|
},
|
597
646
|
"boards_y": {
|
598
647
|
"type": "integer",
|
599
648
|
"uom": null,
|
600
|
-
"description": "Number of boards in the panel in the y-direction
|
649
|
+
"description": "Number of boards in the panel in the y-direction"
|
601
650
|
},
|
602
651
|
"boards_total": {
|
603
652
|
"type": "integer",
|
604
653
|
"uom": ["mm"],
|
605
|
-
"description": "Number total number of boards in the panel. This is not the preferred method of stating the number, \"boards_x\" and \"boards_y\" should be used
|
654
|
+
"description": "Number total number of boards in the panel. This is not the preferred method of stating the number, \"boards_x\" and \"boards_y\" should be used"
|
606
655
|
},
|
607
656
|
"border_left": {
|
608
657
|
"type": "number",
|
609
658
|
"uom": ["mm"],
|
610
|
-
"description": "The size of the left side boarder between the edge and the board
|
659
|
+
"description": "The size of the left side boarder between the edge and the board"
|
611
660
|
},
|
612
661
|
"border_right": {
|
613
662
|
"type": "number",
|
614
663
|
"uom": ["mm"],
|
615
|
-
"description": "The size of the right side boarder between the edge and the board
|
664
|
+
"description": "The size of the right side boarder between the edge and the board"
|
616
665
|
},
|
617
666
|
"border_top": {
|
618
667
|
"type": "number",
|
619
668
|
"uom": ["mm"],
|
620
|
-
"description": "The size of the top side boarder between the edge and the board
|
669
|
+
"description": "The size of the top side boarder between the edge and the board"
|
621
670
|
},
|
622
671
|
"border_bottom": {
|
623
672
|
"type": "number",
|
624
673
|
"uom": ["mm"],
|
625
|
-
"description": "The size of the bottom side boarder between the edge and the board
|
674
|
+
"description": "The size of the bottom side boarder between the edge and the board"
|
626
675
|
},
|
627
676
|
"board_spacing_x": {
|
628
677
|
"type": "number",
|
629
678
|
"uom": ["mm"],
|
630
|
-
"description": "The size of the space between the boards in the x-direction
|
679
|
+
"description": "The size of the space between the boards in the x-direction"
|
631
680
|
},
|
632
681
|
"board_spacing_y": {
|
633
682
|
"type": "number",
|
634
683
|
"uom": ["mm"],
|
635
|
-
"description": "The size of the space between the boards in the y-direction
|
684
|
+
"description": "The size of the space between the boards in the y-direction"
|
636
685
|
},
|
637
686
|
"fiducials_number": {
|
638
687
|
"type": "integer",
|
639
688
|
"uom": null,
|
640
|
-
"description": "The number of fiducials on the array
|
689
|
+
"description": "The number of fiducials on the array"
|
641
690
|
},
|
642
691
|
"fiducials_size": {
|
643
692
|
"type": "number",
|
644
693
|
"uom": ["mm"],
|
645
|
-
"description": "The size of the fiducials
|
694
|
+
"description": "The size of the fiducials"
|
646
695
|
},
|
647
696
|
"fiducials_shape": {
|
648
697
|
"type": "string",
|
@@ -652,7 +701,10 @@
|
|
652
701
|
},
|
653
702
|
"breakaway_method": {
|
654
703
|
"type": "string",
|
655
|
-
"enum": ["routing", "scoring", "
|
704
|
+
"enum": ["routing", "scoring", "jump_scoring"],
|
705
|
+
"enum_description": {
|
706
|
+
"scoring": "alises includes \"v-cut\" and \"v-grove\""
|
707
|
+
},
|
656
708
|
"uom": null,
|
657
709
|
"description": "The method of creation of the breakaways on the array"
|
658
710
|
},
|
@@ -664,12 +716,12 @@
|
|
664
716
|
"tooling_holes_number": {
|
665
717
|
"type": "integer",
|
666
718
|
"uom": null,
|
667
|
-
"description": "The number of tooling holes on the array
|
719
|
+
"description": "The number of tooling holes on the array"
|
668
720
|
},
|
669
721
|
"tooling_holes_size": {
|
670
722
|
"type": "number",
|
671
723
|
"uom": ["mm"],
|
672
|
-
"description": "The size of the tooling holes
|
724
|
+
"description": "The size of the tooling holes."
|
673
725
|
},
|
674
726
|
"x_outs_allowed": {
|
675
727
|
"type": "boolean",
|
@@ -689,14 +741,14 @@
|
|
689
741
|
"weight": {
|
690
742
|
"type": "number",
|
691
743
|
"uom": ["g"],
|
692
|
-
"description": "The weight of the array
|
744
|
+
"description": "The weight of the array"
|
693
745
|
}
|
694
746
|
},
|
695
747
|
"mechanical": {
|
696
748
|
"edge_bevelling": {
|
697
749
|
"type": "boolean",
|
698
750
|
"uom": null,
|
699
|
-
"description": "Edge bevelling present
|
751
|
+
"description": "Edge bevelling present"
|
700
752
|
},
|
701
753
|
"depth_routing_top": {
|
702
754
|
"type": "boolean",
|
@@ -706,75 +758,80 @@
|
|
706
758
|
"depth_routing_bottom": {
|
707
759
|
"type": "boolean",
|
708
760
|
"uom": null,
|
709
|
-
"description": "Depth Routing from the bottom present
|
761
|
+
"description": "Depth Routing from the bottom present"
|
710
762
|
},
|
711
763
|
"counterboring_top": {
|
712
764
|
"type": "boolean",
|
713
765
|
"uom": null,
|
714
|
-
"description": "Counterboring from the top present
|
766
|
+
"description": "Counterboring from the top present"
|
715
767
|
},
|
716
768
|
"counterboring_bottom": {
|
717
769
|
"type": "boolean",
|
718
770
|
"uom": null,
|
719
|
-
"description": "Counterboring from the bottom present
|
771
|
+
"description": "Counterboring from the bottom present"
|
720
772
|
},
|
721
773
|
"countersink_top": {
|
722
774
|
"type": "boolean",
|
723
775
|
"uom": null,
|
724
|
-
"description": "Countersink from the top present
|
776
|
+
"description": "Countersink from the top present"
|
725
777
|
},
|
726
778
|
"countersink_bottom": {
|
727
779
|
"type": "boolean",
|
728
780
|
"uom": null,
|
729
|
-
"description": "Countersink from the bottom present
|
781
|
+
"description": "Countersink from the bottom present"
|
730
782
|
},
|
731
783
|
"punching": {
|
732
784
|
"type": "boolean",
|
733
785
|
"uom": null,
|
734
|
-
"description": "Punching process required
|
786
|
+
"description": "Punching process required"
|
735
787
|
},
|
736
788
|
"plated_edges": {
|
737
789
|
"type": "boolean",
|
738
790
|
"uom": null,
|
739
|
-
"description": "Plated Edges process required
|
791
|
+
"description": "Plated Edges process required"
|
740
792
|
},
|
741
793
|
"plated_slots": {
|
742
794
|
"type": "boolean",
|
743
795
|
"uom": null,
|
744
|
-
"description": "Plated Slots process required
|
796
|
+
"description": "Plated Slots process required"
|
745
797
|
},
|
746
798
|
"plated_castellated_holes": {
|
747
799
|
"type": "boolean",
|
748
800
|
"uom": null,
|
749
|
-
"description": "Plated Castellated Holes process required
|
801
|
+
"description": "Plated Castellated Holes process required"
|
750
802
|
},
|
751
803
|
"coin_attachment": {
|
752
804
|
"type": "boolean",
|
753
805
|
"uom": null,
|
754
|
-
"description": "Coin Attachment process required
|
806
|
+
"description": "Coin Attachment process required"
|
755
807
|
}
|
756
808
|
},
|
757
809
|
"selective_plated_pads": {
|
758
810
|
"present": {
|
759
811
|
"type": "boolean",
|
760
812
|
"uom": null,
|
761
|
-
"description": "Selective plated pads present
|
813
|
+
"description": "Selective plated pads present"
|
762
814
|
},
|
763
815
|
"layers": {
|
764
816
|
"type": "string",
|
765
817
|
"uom": null,
|
766
|
-
"description": "The layers included in the connectors,
|
818
|
+
"description": "The layers included in the connectors, counted from 1 (top layer)"
|
767
819
|
}
|
768
820
|
},
|
769
821
|
"hard_gold_edge_connectors": {
|
770
822
|
"present": {
|
771
823
|
"type": "boolean",
|
772
824
|
"uom": null,
|
773
|
-
"description": "Hard gold edge connectors present
|
825
|
+
"description": "Hard gold edge connectors present"
|
774
826
|
},
|
775
827
|
"thickness": {
|
776
828
|
"type": "string",
|
777
829
|
"enum": ["0.76", "1.27", "other"],
|
830
|
+
"enum_description": {
|
831
|
+
"0.76": "According to IPC Class 2",
|
832
|
+
"1.27": "According to IPC Class 3",
|
833
|
+
"other": "To be specified in the thickness_other tag"
|
834
|
+
},
|
778
835
|
"uom": null,
|
779
836
|
"description": "The thickness of the connectors"
|
780
837
|
},
|
@@ -786,30 +843,30 @@
|
|
786
843
|
"area": {
|
787
844
|
"type": "number",
|
788
845
|
"uom": null,
|
789
|
-
"description": "Area covered by the edge connectors in square desimeter
|
846
|
+
"description": "Area covered by the edge connectors in square desimeter"
|
790
847
|
},
|
791
848
|
"layers": {
|
792
849
|
"type": "string",
|
793
850
|
"uom": null,
|
794
|
-
"description": "The layers included in the connectors, counter from 1 (top layer)
|
851
|
+
"description": "The layers included in the connectors, counter from 1 (top layer)"
|
795
852
|
}
|
796
853
|
},
|
797
854
|
"markings": {
|
798
855
|
"date_code": {
|
799
856
|
"type": "string",
|
800
857
|
"uom": null,
|
801
|
-
"description": "Possible values are \"YY\" for year, \"WW\" for week \"-\" and \"LOT\" (alias \"BATCH\"). E.g. \"YYWW-LOT\" or \"LOT-YYWW\". If no marking, set \"NONE\"
|
858
|
+
"description": "Possible values are \"YY\" for year, \"WW\" for week \"-\" and \"LOT\" (alias \"BATCH\"). E.g. \"YYWW-LOT\" or \"LOT-YYWW\". If no marking, set \"NONE\""
|
802
859
|
},
|
803
860
|
"placement": {
|
804
861
|
"type": "string",
|
805
862
|
"enum": ["copper_top", "copper_bottom", "soldermask_top", "soldermask_bottom", "legend_top", "legend_bottom"],
|
806
863
|
"uom": null,
|
807
|
-
"description": "Placement of the markings
|
864
|
+
"description": "Placement of the markings"
|
808
865
|
},
|
809
866
|
"manufacturer_identification": {
|
810
867
|
"type": "boolean",
|
811
868
|
"uom": null,
|
812
|
-
"description": "Manufacturer identification present
|
869
|
+
"description": "Manufacturer identification present"
|
813
870
|
},
|
814
871
|
"standards": {
|
815
872
|
"type": "array",
|
@@ -817,120 +874,131 @@
|
|
817
874
|
"type": "string"
|
818
875
|
},
|
819
876
|
"uom": null,
|
820
|
-
"description": "Possible values are the ones listed in the subelement \"standards\" but typical will be \"ul\" and \"rohs\"
|
877
|
+
"description": "Possible values are the ones listed in the subelement \"standards\" but typical will be \"ul\" and \"rohs\""
|
821
878
|
},
|
822
879
|
"serial_number": {
|
823
880
|
"type": "boolean",
|
824
881
|
"uom": null,
|
825
|
-
"description": "Serial number should be added in the markings
|
882
|
+
"description": "Serial number should be added in the markings"
|
826
883
|
},
|
827
884
|
"serial_number_format": {
|
828
885
|
"type": "string",
|
829
886
|
"uom": null,
|
830
|
-
"description": "Format of the serial number expressed as a \"regular expression\" but needs to have x amount of digits in it
|
887
|
+
"description": "Format of the serial number expressed as a \"regular expression\" but needs to have x amount of digits in it"
|
831
888
|
},
|
832
889
|
"serial_number_start": {
|
833
890
|
"type": "integer",
|
834
891
|
"uom": null,
|
835
|
-
"description": "The number to start the serial number from. Will have to replace the digits from the \"serial_number_format\" above
|
892
|
+
"description": "The number to start the serial number from. Will have to replace the digits from the \"serial_number_format\" above"
|
836
893
|
},
|
837
894
|
"serial_number_increase_by": {
|
838
895
|
"type": "integer",
|
839
896
|
"uom": null,
|
840
|
-
"description": "The increase in number from \"serial_number_start\" with each product
|
897
|
+
"description": "The increase in number from \"serial_number_start\" with each product"
|
841
898
|
}
|
842
899
|
},
|
843
900
|
"standards": {
|
844
901
|
"ul": {
|
845
902
|
"type": "boolean",
|
846
903
|
"uom": null,
|
847
|
-
"description": "Indicating if UL is required for the board. Can not be used as a capability, as this will be indicated on each material
|
904
|
+
"description": "Indicating if UL is required for the board. Can not be used as a capability, as this will be indicated on each material"
|
848
905
|
},
|
849
906
|
"c_ul": {
|
850
907
|
"type": "boolean",
|
851
908
|
"uom": null,
|
852
|
-
"description": "Indicating if Canadian UL is required for the board. Can not be used as a capability, as this will be indicated on each material
|
909
|
+
"description": "Indicating if Canadian UL is required for the board. Can not be used as a capability, as this will be indicated on each material"
|
853
910
|
},
|
854
911
|
"rohs": {
|
855
912
|
"type": "boolean",
|
856
913
|
"uom": null,
|
857
|
-
"description": "RoHS
|
914
|
+
"description": "RoHS"
|
858
915
|
},
|
859
916
|
"ul94": {
|
860
917
|
"type": "string",
|
861
918
|
"enum": ["hb", "v_0", "v_1", "v_2", "5vb", "5va"],
|
919
|
+
"enum_description": {
|
920
|
+
"hb": "HB - Slow burning on a horizontal specimen; burning rate < 76 mm/min for thickness < 3 mm or burning stops before 100 mm",
|
921
|
+
"v_0": "V-0 - Burning stops within 30 seconds on a vertical specimen; drips of flaming particles are allowed",
|
922
|
+
"v_1": "V-1 - Burning stops within 30 seconds on a vertical specimen; drips of particles allowed as long as they are not inflamed",
|
923
|
+
"v_2": "V-2 - Burning stops within 30 seconds on a vertical specimen; drips of flaming particles are allowed",
|
924
|
+
"5vb": "5VB - Burning stops within 60 seconds on a vertical specimen; no drips allowed; plaque specimens may develop a hole",
|
925
|
+
"5va": "5VA - Burning stops within 60 seconds on a vertical specimen; no drips allowed; plaque specimens may not develop a hole"
|
926
|
+
},
|
862
927
|
"uom": null,
|
863
928
|
"description": "UL 94 - Standard for Safety of Flammability of Plastic Materials for Parts in Devices and Appliances testing"
|
864
929
|
},
|
865
930
|
"esa": {
|
866
931
|
"type": "boolean",
|
867
932
|
"uom": null,
|
868
|
-
"description": "European Space Agency Use
|
933
|
+
"description": "European Space Agency Use"
|
869
934
|
},
|
870
935
|
"itar": {
|
871
936
|
"type": "boolean",
|
872
937
|
"uom": null,
|
873
|
-
"description": "US ITAR
|
938
|
+
"description": "US ITAR"
|
874
939
|
},
|
875
940
|
"dfars": {
|
876
941
|
"type": "boolean",
|
877
942
|
"uom": null,
|
878
|
-
"description": "US DFARS
|
943
|
+
"description": "US DFARS"
|
879
944
|
},
|
880
945
|
"mil_prf_55110": {
|
881
946
|
"type": "boolean",
|
882
947
|
"uom": null,
|
883
|
-
"description": "MIL-PRF-55110
|
948
|
+
"description": "MIL-PRF-55110"
|
884
949
|
},
|
885
950
|
"mil_prf_50884": {
|
886
951
|
"type": "boolean",
|
887
952
|
"uom": null,
|
888
|
-
"description": "MIL-PRF-5884
|
953
|
+
"description": "MIL-PRF-5884"
|
889
954
|
},
|
890
955
|
"mil_prf_31032": {
|
891
956
|
"type": "boolean",
|
892
957
|
"uom": null,
|
893
|
-
"description": "MIL-PRF-31032
|
958
|
+
"description": "MIL-PRF-31032"
|
894
959
|
},
|
895
960
|
"as9100": {
|
896
961
|
"type": "boolean",
|
897
962
|
"uom": null,
|
898
|
-
"description": "AS9100
|
963
|
+
"description": "AS9100"
|
899
964
|
},
|
900
965
|
"nadcap": {
|
901
966
|
"type": "boolean",
|
902
967
|
"uom": null,
|
903
|
-
"description": "NADCAP
|
968
|
+
"description": "NADCAP"
|
904
969
|
},
|
905
970
|
"rw_en45545_2_2013": {
|
906
971
|
"type": "boolean",
|
907
972
|
"uom": null,
|
908
|
-
"description": "Railway Europe EN45545-2:2013
|
973
|
+
"description": "Railway Europe EN45545-2:2013"
|
909
974
|
},
|
910
975
|
"rw_nf_f_16_101": {
|
911
976
|
"type": "boolean",
|
912
977
|
"uom": null,
|
913
|
-
"description": "Railway France NF F 16-101
|
978
|
+
"description": "Railway France NF F 16-101"
|
914
979
|
},
|
915
980
|
"rw_uni_cei_11170_3": {
|
916
981
|
"type": "boolean",
|
917
982
|
"uom": null,
|
918
|
-
"description": "Railway Italy UNI CEI 11170-3
|
983
|
+
"description": "Railway Italy UNI CEI 11170-3"
|
919
984
|
},
|
920
985
|
"rw_nfpa_130": {
|
921
986
|
"type": "boolean",
|
922
987
|
"uom": null,
|
923
|
-
"description": "Railway USA NFPA 130
|
988
|
+
"description": "Railway USA NFPA 130"
|
924
989
|
},
|
925
990
|
"ipc_6010_class": {
|
926
991
|
"type": "string",
|
927
992
|
"enum": ["1", "2", "3"],
|
928
993
|
"uom": null,
|
929
|
-
"description": "According to Table 4-2 /4-3
|
994
|
+
"description": "According to Table 4-2 /4-3"
|
930
995
|
},
|
931
996
|
"ipc_6010_compliance_level": {
|
932
997
|
"type": "string",
|
933
998
|
"enum": ["full", "factory_standard", "aabus"],
|
999
|
+
"enum_description": {
|
1000
|
+
"aabus": "As Agreed Between User and Supplier"
|
1001
|
+
},
|
934
1002
|
"uom": null,
|
935
1003
|
"description": ""
|
936
1004
|
},
|
@@ -938,29 +1006,34 @@
|
|
938
1006
|
"type": "string",
|
939
1007
|
"enum": ["2", "3"],
|
940
1008
|
"uom": null,
|
941
|
-
"description": "Used either if ipc_6010_class is set to 2 and you want to add copper plating thickness demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2
|
1009
|
+
"description": "Used either if ipc_6010_class is set to 2 and you want to add copper plating thickness demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2"
|
942
1010
|
},
|
943
1011
|
"ipc_6010_annular_ring_level": {
|
944
1012
|
"type": "string",
|
945
1013
|
"enum": ["2", "3"],
|
946
1014
|
"uom": null,
|
947
|
-
"description": "Used either if ipc_6010_class is set to 2 and you want to add annular ring demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2
|
1015
|
+
"description": "Used either if ipc_6010_class is set to 2 and you want to add annular ring demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2"
|
948
1016
|
},
|
949
1017
|
"ipc_6010_conductor_spacing_level": {
|
950
1018
|
"type": "string",
|
951
1019
|
"enum": ["2", "3"],
|
952
1020
|
"uom": null,
|
953
|
-
"description": "Used either if ipc_6010_class is set to 2 and you want to add conductor spacing demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2
|
1021
|
+
"description": "Used either if ipc_6010_class is set to 2 and you want to add conductor spacing demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2"
|
954
1022
|
},
|
955
1023
|
"ipc_6010_conductor_width_level": {
|
956
1024
|
"type": "string",
|
957
1025
|
"enum": ["2", "3"],
|
958
1026
|
"uom": null,
|
959
|
-
"description": "Used either if ipc_6010_class is set to 2 and you want to add conductor width demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2
|
1027
|
+
"description": "Used either if ipc_6010_class is set to 2 and you want to add conductor width demands from class 3, or the other way round - class 3 is set but you can accept demands from class 2"
|
960
1028
|
},
|
961
1029
|
"ipc_6012_class": {
|
962
1030
|
"type": "string",
|
963
1031
|
"enum": ["1", "2", "3", "3A", "3S", "3M"],
|
1032
|
+
"enum_description": {
|
1033
|
+
"3A": "Automotive addendum",
|
1034
|
+
"3S": "Space and Military Avionics Addendum",
|
1035
|
+
"3M": "Medical Addendum"
|
1036
|
+
},
|
964
1037
|
"uom": null,
|
965
1038
|
"description": "Requirements according to IPC 6012 class"
|
966
1039
|
},
|
@@ -1000,25 +1073,25 @@
|
|
1000
1073
|
"ist": {
|
1001
1074
|
"type": "boolean",
|
1002
1075
|
"uom": null,
|
1003
|
-
"description": "Use IST testing
|
1076
|
+
"description": "Use IST testing"
|
1004
1077
|
},
|
1005
1078
|
"impedance": {
|
1006
1079
|
"type": "string",
|
1007
1080
|
"enum": ["controlled", "calculated", "follow_stackup"],
|
1008
1081
|
"uom": null,
|
1009
|
-
"description": ""
|
1082
|
+
"description": "How to conduct a impedance test"
|
1010
1083
|
}
|
1011
1084
|
},
|
1012
1085
|
"country_of_origin": {
|
1013
1086
|
"iso_3166_1_alpha_3": {
|
1014
1087
|
"type": "string",
|
1015
1088
|
"uom": null,
|
1016
|
-
"description": "A three letter string representation of the Country of origin according too ISO 3166-1
|
1089
|
+
"description": "A three letter string representation of the Country of origin according too ISO 3166-1"
|
1017
1090
|
},
|
1018
1091
|
"iso_3166_1_alpha_2": {
|
1019
1092
|
"type": "string",
|
1020
1093
|
"uom": null,
|
1021
|
-
"description": "A two letter string representation of the Country of origin according too ISO 3166-1
|
1094
|
+
"description": "A two letter string representation of the Country of origin according too ISO 3166-1"
|
1022
1095
|
},
|
1023
1096
|
"nato_member": {
|
1024
1097
|
"type": "boolean",
|
@@ -1028,7 +1101,7 @@
|
|
1028
1101
|
"eu_member": {
|
1029
1102
|
"type": "boolean",
|
1030
1103
|
"uom": null,
|
1031
|
-
"description": "Indicates if the COO is a European Union member state
|
1104
|
+
"description": "Indicates if the COO is a European Union member state"
|
1032
1105
|
}
|
1033
1106
|
},
|
1034
1107
|
"conflict_resolution": {
|
@@ -1060,7 +1133,7 @@
|
|
1060
1133
|
"odb": {
|
1061
1134
|
"type": "integer",
|
1062
1135
|
"uom": null,
|
1063
|
-
"description": " Information in a ODB++ file
|
1136
|
+
"description": " Information in a ODB++ file"
|
1064
1137
|
},
|
1065
1138
|
"gerber": {
|
1066
1139
|
"type": "integer",
|
@@ -1072,38 +1145,38 @@
|
|
1072
1145
|
"number": {
|
1073
1146
|
"type": "integer",
|
1074
1147
|
"uom": null,
|
1075
|
-
"description": "The number of holes total or in this process
|
1148
|
+
"description": "The number of holes total or in this process"
|
1076
1149
|
},
|
1077
1150
|
"type": {
|
1078
1151
|
"type": "string",
|
1079
1152
|
"enum": ["through", "blind", "buried", "back_drill"],
|
1080
1153
|
"uom": null,
|
1081
|
-
"description": "The type of holes
|
1154
|
+
"description": "The type of holes"
|
1082
1155
|
},
|
1083
1156
|
"plated": {
|
1084
1157
|
"type": "boolean",
|
1085
1158
|
"uom": null,
|
1086
|
-
"description": "True if the holes are plated
|
1159
|
+
"description": "True if the holes are plated"
|
1087
1160
|
},
|
1088
1161
|
"size": {
|
1089
1162
|
"type": "number",
|
1090
1163
|
"uom": ["um"],
|
1091
|
-
"description": "The size of the hole in micrometers. Can be considered the minimum hole size if only one holes element present in the list or as a capability
|
1164
|
+
"description": "The size of the hole in micrometers. Can be considered the minimum hole size if only one holes element present in the list or as a capability"
|
1092
1165
|
},
|
1093
1166
|
"layer_start": {
|
1094
1167
|
"type": "integer",
|
1095
1168
|
"uom": null,
|
1096
|
-
"description": "The layer where the hole starts, counted from the top, where top layer is 1
|
1169
|
+
"description": "The layer where the hole starts, counted from the top, where top layer is 1"
|
1097
1170
|
},
|
1098
1171
|
"layer_stop": {
|
1099
1172
|
"type": "integer",
|
1100
1173
|
"uom": null,
|
1101
|
-
"description": "The layer where the hole stops, counted from the top, where top layer is 1
|
1174
|
+
"description": "The layer where the hole stops, counted from the top, where top layer is 1"
|
1102
1175
|
},
|
1103
1176
|
"depth": {
|
1104
1177
|
"type": "number",
|
1105
1178
|
"uom": ["um"],
|
1106
|
-
"description": "The depth of the hole
|
1179
|
+
"description": "The depth of the hole"
|
1107
1180
|
},
|
1108
1181
|
"method": {
|
1109
1182
|
"type": "string",
|
@@ -1113,55 +1186,55 @@
|
|
1113
1186
|
},
|
1114
1187
|
"minimum_designed_annular_ring": {
|
1115
1188
|
"type": "number",
|
1116
|
-
"uom":
|
1117
|
-
"description": "The minimum designed annular ring
|
1189
|
+
"uom": ["um"],
|
1190
|
+
"description": "The minimum designed annular ring"
|
1118
1191
|
},
|
1119
1192
|
"press_fit": {
|
1120
1193
|
"type": "boolean",
|
1121
1194
|
"uom": null,
|
1122
|
-
"description": "Press Fit holes
|
1195
|
+
"description": "Press Fit holes"
|
1123
1196
|
},
|
1124
1197
|
"copper_filled": {
|
1125
1198
|
"type": "boolean",
|
1126
1199
|
"uom": null,
|
1127
|
-
"description": "Copper filled holes
|
1200
|
+
"description": "Copper filled holes"
|
1128
1201
|
},
|
1129
1202
|
"staggered": {
|
1130
1203
|
"type": "boolean",
|
1131
1204
|
"uom": null,
|
1132
|
-
"description": "Staggered holes
|
1205
|
+
"description": "Staggered holes"
|
1133
1206
|
},
|
1134
1207
|
"stacked": {
|
1135
1208
|
"type": "boolean",
|
1136
1209
|
"uom": null,
|
1137
|
-
"description": "Stacked holes
|
1210
|
+
"description": "Stacked holes"
|
1138
1211
|
},
|
1139
1212
|
"alivh": {
|
1140
1213
|
"type": "boolean",
|
1141
1214
|
"uom": null,
|
1142
|
-
"description": "ALIVH holes
|
1215
|
+
"description": "ALIVH holes"
|
1143
1216
|
}
|
1144
1217
|
},
|
1145
1218
|
"allowed_modifications": {
|
1146
1219
|
"dead_pad_removal": {
|
1147
1220
|
"type": "boolean",
|
1148
1221
|
"uom": null,
|
1149
|
-
"description": "Non Functioning
|
1222
|
+
"description": "Allowed to remove Non Functioning Pads"
|
1150
1223
|
},
|
1151
1224
|
"add_copper_balancing": {
|
1152
1225
|
"type": "boolean",
|
1153
1226
|
"uom": null,
|
1154
|
-
"description": "Adding copper balancing pattern"
|
1227
|
+
"description": "Adding copper balancing pattern allowed"
|
1155
1228
|
},
|
1156
1229
|
"add_copper_balancing_on_array": {
|
1157
1230
|
"type": "boolean",
|
1158
1231
|
"uom": null,
|
1159
|
-
"description": "Adding copper balancing pattern on array/panel frame
|
1232
|
+
"description": "Adding copper balancing pattern on array/panel frame allowed"
|
1160
1233
|
},
|
1161
1234
|
"add_tear_drops": {
|
1162
1235
|
"type": "boolean",
|
1163
1236
|
"uom": null,
|
1164
|
-
"description": "Adding Tear Drops
|
1237
|
+
"description": "Adding Tear Drops allowed"
|
1165
1238
|
}
|
1166
1239
|
},
|
1167
1240
|
"additional_requirements": {
|