@bagelink/vue 0.0.955 → 0.0.959

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 (203) hide show
  1. package/dist/components/Accordion.d.ts +12 -0
  2. package/dist/components/Accordion.d.ts.map +1 -0
  3. package/dist/components/AccordionItem.d.ts +34 -0
  4. package/dist/components/AccordionItem.d.ts.map +1 -0
  5. package/dist/components/Alert.d.ts +34 -0
  6. package/dist/components/Alert.d.ts.map +1 -0
  7. package/dist/components/Avatar.d.ts +36 -0
  8. package/dist/components/Avatar.d.ts.map +1 -0
  9. package/dist/components/Badge.d.ts +22 -0
  10. package/dist/components/Badge.d.ts.map +1 -0
  11. package/dist/components/BglVideo.d.ts +20 -0
  12. package/dist/components/BglVideo.d.ts.map +1 -0
  13. package/dist/components/Btn.d.ts +99 -0
  14. package/dist/components/Btn.d.ts.map +1 -0
  15. package/dist/components/Card.d.ts +39 -0
  16. package/dist/components/Card.d.ts.map +1 -0
  17. package/dist/components/Carousel.d.ts +74 -0
  18. package/dist/components/Carousel.d.ts.map +1 -0
  19. package/dist/components/ComboBox.vue.d.ts +3 -3
  20. package/dist/components/Comments.vue.d.ts +2 -2
  21. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  22. package/dist/components/DataPreview.d.ts +42 -0
  23. package/dist/components/DataPreview.d.ts.map +1 -0
  24. package/dist/components/Drop.vue.d.ts +34 -0
  25. package/dist/components/Drop.vue.d.ts.map +1 -0
  26. package/dist/components/DropDown.vue.d.ts +17 -186
  27. package/dist/components/DropDown.vue.d.ts.map +1 -1
  28. package/dist/components/FileUploader.vue.d.ts +60 -0
  29. package/dist/components/FileUploader.vue.d.ts.map +1 -0
  30. package/dist/components/Flag.d.ts +20 -0
  31. package/dist/components/Flag.d.ts.map +1 -0
  32. package/dist/components/FormSchema.vue.d.ts +5 -4
  33. package/dist/components/LangText.vue.d.ts +2 -2
  34. package/dist/components/ListItem.d.ts +34 -0
  35. package/dist/components/ListItem.d.ts.map +1 -0
  36. package/dist/components/ListView.d.ts +13 -0
  37. package/dist/components/ListView.d.ts.map +1 -0
  38. package/dist/components/MapEmbed.d.ts +3 -0
  39. package/dist/components/MapEmbed.d.ts.map +1 -0
  40. package/dist/components/MaterialIcon.d.ts +26 -0
  41. package/dist/components/MaterialIcon.d.ts.map +1 -0
  42. package/dist/components/Modal.d.ts +46 -0
  43. package/dist/components/Modal.d.ts.map +1 -0
  44. package/dist/components/ModalBglForm.vue.d.ts +21 -20
  45. package/dist/components/ModalConfirm.d.ts +24 -0
  46. package/dist/components/ModalConfirm.d.ts.map +1 -0
  47. package/dist/components/ModalForm.d.ts +78 -0
  48. package/dist/components/ModalForm.d.ts.map +1 -0
  49. package/dist/components/NavBar.d.ts +64 -0
  50. package/dist/components/NavBar.d.ts.map +1 -0
  51. package/dist/components/PageTitle.d.ts +24 -0
  52. package/dist/components/PageTitle.d.ts.map +1 -0
  53. package/dist/components/PersonPreview.vue.d.ts +5 -4
  54. package/dist/components/PersonPreviewFormkit.vue.d.ts +4 -3
  55. package/dist/components/RTXEditor.vue.d.ts +3 -3
  56. package/dist/components/RouterWrapper.d.ts +3 -0
  57. package/dist/components/RouterWrapper.d.ts.map +1 -0
  58. package/dist/components/TabbedLayout.vue.d.ts +5 -4
  59. package/dist/components/TableSchema.d.ts +35 -0
  60. package/dist/components/TableSchema.d.ts.map +1 -0
  61. package/dist/components/TableSchema.vue.d.ts +2 -11
  62. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  63. package/dist/components/Title.d.ts +42 -0
  64. package/dist/components/Title.d.ts.map +1 -0
  65. package/dist/components/TopBar.d.ts +12 -0
  66. package/dist/components/TopBar.d.ts.map +1 -0
  67. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  68. package/dist/components/dashboard/Lineart.d.ts +20 -0
  69. package/dist/components/dashboard/Lineart.d.ts.map +1 -0
  70. package/dist/components/form/BglField.d.ts +25 -0
  71. package/dist/components/form/BglField.d.ts.map +1 -0
  72. package/dist/components/form/BglField.vue.d.ts +2 -6
  73. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  74. package/dist/components/form/BglForm.d.ts +75 -0
  75. package/dist/components/form/BglForm.d.ts.map +1 -0
  76. package/dist/components/form/BglMultiStepForm.vue.d.ts +3 -21
  77. package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -1
  78. package/dist/components/form/ItemRef.vue.d.ts +5 -3
  79. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  80. package/dist/components/form/MaterialIcon.vue.d.ts +4 -3
  81. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  82. package/dist/components/form/inputs/CheckInput.d.ts +56 -0
  83. package/dist/components/form/inputs/CheckInput.d.ts.map +1 -0
  84. package/dist/components/form/inputs/Checkbox.d.ts +16 -0
  85. package/dist/components/form/inputs/Checkbox.d.ts.map +1 -0
  86. package/dist/components/form/inputs/ColorPicker.d.ts +48 -0
  87. package/dist/components/form/inputs/ColorPicker.d.ts.map +1 -0
  88. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  89. package/dist/components/form/inputs/DateInput.d.ts +64 -0
  90. package/dist/components/form/inputs/DateInput.d.ts.map +1 -0
  91. package/dist/components/form/inputs/DatePicker.d.ts +33 -0
  92. package/dist/components/form/inputs/DatePicker.d.ts.map +1 -0
  93. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  94. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  95. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  96. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  97. package/dist/components/form/inputs/FileUpload.d.ts +108 -0
  98. package/dist/components/form/inputs/FileUpload.d.ts.map +1 -0
  99. package/dist/components/form/inputs/FileUpload.vue.d.ts +2 -0
  100. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  101. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  102. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  103. package/dist/components/form/inputs/JSONInput.d.ts +53 -0
  104. package/dist/components/form/inputs/JSONInput.d.ts.map +1 -0
  105. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  106. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  107. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  108. package/dist/components/form/inputs/RadioGroup.d.ts +42 -0
  109. package/dist/components/form/inputs/RadioGroup.d.ts.map +1 -0
  110. package/dist/components/form/inputs/RadioGroup.vue.d.ts +2 -6
  111. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  112. package/dist/components/form/inputs/RadioPillsInput.d.ts +48 -0
  113. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +1 -0
  114. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  115. package/dist/components/form/inputs/RichText.d.ts +20 -0
  116. package/dist/components/form/inputs/RichText.d.ts.map +1 -0
  117. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +22 -0
  118. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +1 -0
  119. package/dist/components/form/inputs/RichText2/index.d.ts +24 -0
  120. package/dist/components/form/inputs/RichText2/index.d.ts.map +1 -0
  121. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  122. package/dist/components/form/inputs/SelectField.vue.d.ts +6 -8
  123. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  124. package/dist/components/form/inputs/SelectInput.d.ts +55 -0
  125. package/dist/components/form/inputs/SelectInput.d.ts.map +1 -0
  126. package/dist/components/form/inputs/SelectInput.vue.d.ts +2 -50
  127. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  128. package/dist/components/form/inputs/SignaturePad.d.ts +72 -0
  129. package/dist/components/form/inputs/SignaturePad.d.ts.map +1 -0
  130. package/dist/components/form/inputs/TableField.d.ts +45 -0
  131. package/dist/components/form/inputs/TableField.d.ts.map +1 -0
  132. package/dist/components/form/inputs/TelInput.d.ts +241 -0
  133. package/dist/components/form/inputs/TelInput.d.ts.map +1 -0
  134. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  135. package/dist/components/form/inputs/TextInput.d.ts +90 -0
  136. package/dist/components/form/inputs/TextInput.d.ts.map +1 -0
  137. package/dist/components/form/inputs/ToggleInput.d.ts +58 -0
  138. package/dist/components/form/inputs/ToggleInput.d.ts.map +1 -0
  139. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  140. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  141. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  142. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  143. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  144. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  145. package/dist/components/layout/BottomMenu.d.ts +27 -0
  146. package/dist/components/layout/BottomMenu.d.ts.map +1 -0
  147. package/dist/components/layout/Layout.d.ts +58 -0
  148. package/dist/components/layout/Layout.d.ts.map +1 -0
  149. package/dist/components/layout/SidebarMenu.d.ts +38 -0
  150. package/dist/components/layout/SidebarMenu.d.ts.map +1 -0
  151. package/dist/components/layout/TabbedLayout.d.ts +42 -0
  152. package/dist/components/layout/TabbedLayout.d.ts.map +1 -0
  153. package/dist/components/layout/Tabs.d.ts +31 -0
  154. package/dist/components/layout/Tabs.d.ts.map +1 -0
  155. package/dist/components/layout/TabsBody.d.ts +23 -0
  156. package/dist/components/layout/TabsBody.d.ts.map +1 -0
  157. package/dist/components/layout/TabsNav.d.ts +35 -0
  158. package/dist/components/layout/TabsNav.d.ts.map +1 -0
  159. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +4 -3
  160. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  161. package/dist/index.cjs +1540 -1421
  162. package/dist/index.mjs +1540 -1421
  163. package/dist/style.css +14 -0
  164. package/dist/utils/BagelFormUtils.d.ts +2 -30
  165. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  166. package/dist/utils/objects.d.ts +1 -0
  167. package/dist/vue.css +13814 -0
  168. package/package.json +1 -1
  169. package/src/components/form/BglField.vue +31 -3
  170. package/src/styles/layout.css +8 -0
  171. package/src/styles/mobilLayout.css +8 -0
  172. package/dist/components/AddressSaerch.vue.d.ts +0 -7
  173. package/dist/components/AddressSaerch.vue.d.ts.map +0 -1
  174. package/dist/components/Popover.vue.d.ts +0 -10
  175. package/dist/components/Popover.vue.d.ts.map +0 -1
  176. package/dist/components/sortable/Animation.d.ts +0 -43
  177. package/dist/components/sortable/Animation.d.ts.map +0 -1
  178. package/dist/components/sortable/BrowserInfo.d.ts +0 -7
  179. package/dist/components/sortable/BrowserInfo.d.ts.map +0 -1
  180. package/dist/components/sortable/EventDispatcher.d.ts +0 -13
  181. package/dist/components/sortable/EventDispatcher.d.ts.map +0 -1
  182. package/dist/components/sortable/PluginManager.d.ts +0 -27
  183. package/dist/components/sortable/PluginManager.d.ts.map +0 -1
  184. package/dist/components/sortable/Sortable.d.ts +0 -81
  185. package/dist/components/sortable/Sortable.d.ts.map +0 -1
  186. package/dist/components/sortable/index.d.ts +0 -5
  187. package/dist/components/sortable/index.d.ts.map +0 -1
  188. package/dist/components/sortable/utils.d.ts +0 -49
  189. package/dist/components/sortable/utils.d.ts.map +0 -1
  190. package/dist/composables/drag-n-drop/useDraggable.d.ts +0 -2
  191. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +0 -1
  192. package/dist/plugins/drag-n-drop/draggable.d.ts +0 -4
  193. package/dist/plugins/drag-n-drop/draggable.d.ts.map +0 -1
  194. package/dist/plugins/drag-n-drop/droppable.d.ts +0 -4
  195. package/dist/plugins/drag-n-drop/droppable.d.ts.map +0 -1
  196. package/dist/plugins/drag-n-drop/index.d.ts +0 -5
  197. package/dist/plugins/drag-n-drop/index.d.ts.map +0 -1
  198. package/dist/plugins/drag-n-drop/useDraggable.d.ts +0 -8
  199. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +0 -1
  200. package/dist/plugins/drag-n-drop/useDroppable.d.ts +0 -7
  201. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +0 -1
  202. package/dist/types/materialIcon.d.ts +0 -2
  203. package/dist/types/materialIcon.d.ts.map +0 -1
package/dist/index.mjs CHANGED
@@ -7553,10 +7553,9 @@ async function convertValueToCoords(state2, options) {
7553
7553
  crossAxis: 0,
7554
7554
  alignmentAxis: null
7555
7555
  } : {
7556
- mainAxis: 0,
7557
- crossAxis: 0,
7558
- alignmentAxis: null,
7559
- ...rawValue
7556
+ mainAxis: rawValue.mainAxis || 0,
7557
+ crossAxis: rawValue.crossAxis || 0,
7558
+ alignmentAxis: rawValue.alignmentAxis
7560
7559
  };
7561
7560
  if (alignment && typeof alignmentAxis === "number") {
7562
7561
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7661,7 +7660,11 @@ const shift$1 = function(options) {
7661
7660
  ...limitedCoords,
7662
7661
  data: {
7663
7662
  x: limitedCoords.x - x2,
7664
- y: limitedCoords.y - y2
7663
+ y: limitedCoords.y - y2,
7664
+ enabled: {
7665
+ [mainAxis]: checkMainAxis,
7666
+ [crossAxis]: checkCrossAxis
7667
+ }
7665
7668
  }
7666
7669
  };
7667
7670
  }
@@ -7675,6 +7678,7 @@ const size = function(options) {
7675
7678
  name: "size",
7676
7679
  options,
7677
7680
  async fn(state2) {
7681
+ var _state$middlewareData, _state$middlewareData2;
7678
7682
  const {
7679
7683
  placement,
7680
7684
  rects,
@@ -7710,10 +7714,11 @@ const size = function(options) {
7710
7714
  const noShift = !state2.middlewareData.shift;
7711
7715
  let availableHeight = overflowAvailableHeight;
7712
7716
  let availableWidth = overflowAvailableWidth;
7713
- if (isYAxis) {
7714
- availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7715
- } else {
7716
- availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7717
+ if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7718
+ availableWidth = maximumClippingWidth;
7719
+ }
7720
+ if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7721
+ availableHeight = maximumClippingHeight;
7717
7722
  }
7718
7723
  if (noShift && !alignment) {
7719
7724
  const xMin = max$1(overflow.left, 0);
@@ -9621,15 +9626,40 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
9621
9626
  emit2("update:modelValue", val);
9622
9627
  }
9623
9628
  });
9629
+ const objPathRegex = /[.\][]/;
9630
+ function setFieldData(key, val) {
9631
+ const data2 = { ...props2.modelValue };
9632
+ const keys4 = key.split(objPathRegex);
9633
+ let temp = data2;
9634
+ for (let i2 = 0; i2 < keys4.length - 1; i2++) {
9635
+ if (!temp[keys4[i2]]) {
9636
+ temp[keys4[i2]] = {};
9637
+ }
9638
+ temp = temp[keys4[i2]];
9639
+ }
9640
+ temp[keys4[keys4.length - 1]] = val;
9641
+ return data2;
9642
+ }
9643
+ function getFieldData(obj, key) {
9644
+ const keys4 = key.split(objPathRegex);
9645
+ let result2 = obj;
9646
+ for (const k2 of keys4) {
9647
+ if (result2 && k2 in result2) {
9648
+ result2 = result2[k2];
9649
+ } else {
9650
+ return void 0;
9651
+ }
9652
+ }
9653
+ return result2;
9654
+ }
9624
9655
  const fieldData = computed({
9625
9656
  set: (val) => {
9626
9657
  if (!props2.field.id) return;
9627
- const data2 = { ...props2.modelValue };
9628
- data2[props2.field.id] = val;
9658
+ const data2 = setFieldData(props2.field.id, val);
9629
9659
  emit2("update:modelValue", data2);
9630
9660
  },
9631
9661
  get: () => {
9632
- if (props2.field.id) return props2.modelValue[props2.field.id];
9662
+ if (props2.field.id) return getFieldData(props2.modelValue, props2.field.id);
9633
9663
  return props2.field.defaultValue ?? "";
9634
9664
  }
9635
9665
  });
@@ -20687,6 +20717,12 @@ let Node$2 = class Node2 {
20687
20717
  this.content = content || Fragment.empty;
20688
20718
  }
20689
20719
  /**
20720
+ The array of this node's child nodes.
20721
+ */
20722
+ get children() {
20723
+ return this.content.content;
20724
+ }
20725
+ /**
20690
20726
  The size of this node, as defined by the integer-based [indexing
20691
20727
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20692
20728
  amount of characters. For other leaf nodes, it is one. For
@@ -21373,7 +21409,7 @@ function resolveName(stream, name) {
21373
21409
  let result2 = [];
21374
21410
  for (let typeName in types) {
21375
21411
  let type4 = types[typeName];
21376
- if (type4.groups.indexOf(name) > -1)
21412
+ if (type4.isInGroup(name))
21377
21413
  result2.push(type4);
21378
21414
  }
21379
21415
  if (result2.length == 0)
@@ -21611,6 +21647,13 @@ let NodeType$1 = class NodeType2 {
21611
21647
  return this.isLeaf || !!this.spec.atom;
21612
21648
  }
21613
21649
  /**
21650
+ Return true when this node type is part of the given
21651
+ [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21652
+ */
21653
+ isInGroup(group) {
21654
+ return this.groups.indexOf(group) > -1;
21655
+ }
21656
+ /**
21614
21657
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21615
21658
  */
21616
21659
  get whitespace() {
@@ -22366,6 +22409,7 @@ class ParseContext {
22366
22409
  contentDOM = rule.contentElement;
22367
22410
  this.findAround(dom, contentDOM, true);
22368
22411
  this.addAll(contentDOM, marks);
22412
+ this.findAround(dom, contentDOM, false);
22369
22413
  }
22370
22414
  if (sync && this.sync(startIn))
22371
22415
  this.open--;
@@ -22541,7 +22585,7 @@ class ParseContext {
22541
22585
  return false;
22542
22586
  } else {
22543
22587
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22544
- if (!next || next.name != part && next.groups.indexOf(part) == -1)
22588
+ if (!next || next.name != part && !next.isInGroup(part))
22545
22589
  return false;
22546
22590
  depth--;
22547
22591
  }
@@ -23801,8 +23845,24 @@ function canJoin(doc2, pos) {
23801
23845
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23802
23846
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23803
23847
  }
23848
+ function canAppendWithSubstitutedLinebreaks(a2, b2) {
23849
+ if (!b2.content.size)
23850
+ a2.type.compatibleContent(b2.type);
23851
+ let match2 = a2.contentMatchAt(a2.childCount);
23852
+ let { linebreakReplacement } = a2.type.schema;
23853
+ for (let i2 = 0; i2 < b2.childCount; i2++) {
23854
+ let child = b2.child(i2);
23855
+ let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23856
+ match2 = match2.matchType(type3);
23857
+ if (!match2)
23858
+ return false;
23859
+ if (!a2.type.allowsMarks(child.marks))
23860
+ return false;
23861
+ }
23862
+ return match2.validEnd;
23863
+ }
23804
23864
  function joinable(a2, b2) {
23805
- return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23865
+ return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23806
23866
  }
23807
23867
  function joinPoint(doc2, pos, dir = -1) {
23808
23868
  let $pos = doc2.resolve(pos);
@@ -23827,8 +23887,31 @@ function joinPoint(doc2, pos, dir = -1) {
23827
23887
  }
23828
23888
  }
23829
23889
  function join(tr2, pos, depth) {
23830
- let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23831
- tr2.step(step);
23890
+ let convertNewlines = null;
23891
+ let { linebreakReplacement } = tr2.doc.type.schema;
23892
+ let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23893
+ if (linebreakReplacement && beforeType.inlineContent) {
23894
+ let pre = beforeType.whitespace == "pre";
23895
+ let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23896
+ if (pre && !supportLinebreak)
23897
+ convertNewlines = false;
23898
+ else if (!pre && supportLinebreak)
23899
+ convertNewlines = true;
23900
+ }
23901
+ let mapFrom = tr2.steps.length;
23902
+ if (convertNewlines === false) {
23903
+ let $after = tr2.doc.resolve(pos + depth);
23904
+ replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23905
+ }
23906
+ if (beforeType.inlineContent)
23907
+ clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23908
+ let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23909
+ tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23910
+ if (convertNewlines === true) {
23911
+ let $full = tr2.doc.resolve(start2);
23912
+ replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23913
+ }
23914
+ return tr2;
23832
23915
  }
23833
23916
  function insertPoint(doc2, pos, nodeType) {
23834
23917
  let $pos = doc2.resolve(pos);
@@ -24224,7 +24307,7 @@ function deleteRange$1(tr2, from2, to2) {
24224
24307
  return tr2.delete($from.before(depth), $to.after(depth));
24225
24308
  }
24226
24309
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24227
- if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24310
+ if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2 && $from.start(d2 - 1) == $to.start(d2 - 1) && $from.node(d2 - 1).canReplace($from.index(d2 - 1), $to.index(d2 - 1)))
24228
24311
  return tr2.delete($from.before(d2), to2);
24229
24312
  }
24230
24313
  tr2.delete(from2, to2);
@@ -26378,17 +26461,18 @@ class ViewDesc {
26378
26461
  // custom things with the selection. Note that this falls apart when
26379
26462
  // a selection starts in such a node and ends in another, in which
26380
26463
  // case we just use whatever domFromPos produces as a best effort.
26381
- setSelection(anchor, head, root2, force = false) {
26464
+ setSelection(anchor, head, view, force = false) {
26382
26465
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26383
26466
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26384
26467
  let child = this.children[i2], end2 = offset2 + child.size;
26385
26468
  if (from2 > offset2 && to2 < end2)
26386
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26469
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26387
26470
  offset2 = end2;
26388
26471
  }
26389
26472
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26390
26473
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26391
- let domSel = root2.getSelection();
26474
+ let domSel = view.root.getSelection();
26475
+ let selRange = view.domSelectionRange();
26392
26476
  let brKludge = false;
26393
26477
  if ((gecko || safari) && anchor == head) {
26394
26478
  let { node, offset: offset2 } = anchorDOM;
@@ -26411,12 +26495,12 @@ class ViewDesc {
26411
26495
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26412
26496
  }
26413
26497
  }
26414
- if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26415
- let after = domSel.focusNode.childNodes[domSel.focusOffset];
26498
+ if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26499
+ let after = selRange.focusNode.childNodes[selRange.focusOffset];
26416
26500
  if (after && after.contentEditable == "false")
26417
26501
  force = true;
26418
26502
  }
26419
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26503
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26420
26504
  return;
26421
26505
  let domSelExtended = false;
26422
26506
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26557,16 +26641,17 @@ class CompositionViewDesc extends ViewDesc {
26557
26641
  }
26558
26642
  }
26559
26643
  class MarkViewDesc extends ViewDesc {
26560
- constructor(parent, mark, dom, contentDOM) {
26644
+ constructor(parent, mark, dom, contentDOM, spec) {
26561
26645
  super(parent, [], dom, contentDOM);
26562
26646
  this.mark = mark;
26647
+ this.spec = spec;
26563
26648
  }
26564
26649
  static create(parent, mark, inline, view) {
26565
26650
  let custom2 = view.nodeViews[mark.type.name];
26566
26651
  let spec = custom2 && custom2(mark, view, inline);
26567
26652
  if (!spec || !spec.dom)
26568
26653
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26569
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26654
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26570
26655
  }
26571
26656
  parseRule() {
26572
26657
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26599,6 +26684,14 @@ class MarkViewDesc extends ViewDesc {
26599
26684
  copy2.children = nodes;
26600
26685
  return copy2;
26601
26686
  }
26687
+ ignoreMutation(mutation) {
26688
+ return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26689
+ }
26690
+ destroy() {
26691
+ if (this.spec.destroy)
26692
+ this.spec.destroy();
26693
+ super.destroy();
26694
+ }
26602
26695
  }
26603
26696
  class NodeViewDesc extends ViewDesc {
26604
26697
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26890,7 +26983,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26890
26983
  update(node, outerDeco, innerDeco, view) {
26891
26984
  if (this.dirty == NODE_DIRTY)
26892
26985
  return false;
26893
- if (this.spec.update) {
26986
+ if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26894
26987
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26895
26988
  if (result2)
26896
26989
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26907,8 +27000,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26907
27000
  deselectNode() {
26908
27001
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26909
27002
  }
26910
- setSelection(anchor, head, root2, force) {
26911
- this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
27003
+ setSelection(anchor, head, view, force) {
27004
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26912
27005
  }
26913
27006
  destroy() {
26914
27007
  if (this.spec.destroy)
@@ -27495,7 +27588,7 @@ function selectionToDOM(view, force = false) {
27495
27588
  if (!sel.empty && !sel.$from.parent.inlineContent)
27496
27589
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27497
27590
  }
27498
- view.docView.setSelection(anchor, head, view.root, force);
27591
+ view.docView.setSelection(anchor, head, view, force);
27499
27592
  if (brokenSelectBetweenUneditable) {
27500
27593
  if (resetEditableFrom)
27501
27594
  resetEditable(resetEditableFrom);
@@ -28131,11 +28224,14 @@ let _detachedDoc = null;
28131
28224
  function detachedDoc() {
28132
28225
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28133
28226
  }
28227
+ let _policy = null;
28134
28228
  function maybeWrapTrusted(html) {
28135
28229
  let trustedTypes = window.trustedTypes;
28136
28230
  if (!trustedTypes)
28137
28231
  return html;
28138
- return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28232
+ if (!_policy)
28233
+ _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28234
+ return _policy.createHTML(html);
28139
28235
  }
28140
28236
  function readHTML(html) {
28141
28237
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28267,9 +28363,7 @@ editHandlers.keydown = (view, _event) => {
28267
28363
  view.input.lastKeyCodeTime = Date.now();
28268
28364
  if (android && chrome && event.keyCode == 13)
28269
28365
  return;
28270
- if (view.domObserver.selectionChanged(view.domSelectionRange()))
28271
- view.domObserver.flush();
28272
- else if (event.keyCode != 229)
28366
+ if (event.keyCode != 229)
28273
28367
  view.domObserver.forceFlush();
28274
28368
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28275
28369
  let now = Date.now();
@@ -29647,9 +29741,6 @@ class DOMObserver {
29647
29741
  this.queue.push(mut);
29648
29742
  return this.queue;
29649
29743
  }
29650
- selectionChanged(sel) {
29651
- return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29652
- }
29653
29744
  flush() {
29654
29745
  let { view } = this;
29655
29746
  if (!view.docView || this.flushingSoon > -1)
@@ -29657,7 +29748,8 @@ class DOMObserver {
29657
29748
  let mutations = this.pendingRecords();
29658
29749
  if (mutations.length)
29659
29750
  this.queue = [];
29660
- let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29751
+ let sel = view.domSelectionRange();
29752
+ let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29661
29753
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29662
29754
  if (view.editable) {
29663
29755
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31097,7 +31189,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31097
31189
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31098
31190
  return false;
31099
31191
  if (dispatch)
31100
- dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31192
+ dispatch(state2.tr.join($pos.pos).scrollIntoView());
31101
31193
  return true;
31102
31194
  }
31103
31195
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31113,9 +31205,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31113
31205
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31114
31206
  wrap2 = Fragment.from(before.copy(wrap2));
31115
31207
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31116
- let joinAt = end2 + 2 * conn.length;
31117
- if (canJoin(tr2.doc, joinAt))
31118
- tr2.join(joinAt);
31208
+ let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31209
+ if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31210
+ tr2.join($joinAt.pos);
31119
31211
  dispatch(tr2.scrollIntoView());
31120
31212
  }
31121
31213
  return true;
@@ -31480,6 +31572,13 @@ class EventEmitter {
31480
31572
  }
31481
31573
  return this;
31482
31574
  }
31575
+ once(event, fn3) {
31576
+ const onceFn = (...args) => {
31577
+ this.off(event, onceFn);
31578
+ fn3.apply(this, args);
31579
+ };
31580
+ return this.on(event, onceFn);
31581
+ }
31483
31582
  removeAllListeners() {
31484
31583
  this.callbacks = {};
31485
31584
  }
@@ -31727,6 +31826,7 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31727
31826
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31728
31827
  code: callOrReturn(getExtensionField(extension, "code", context)),
31729
31828
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31829
+ linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31730
31830
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31731
31831
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31732
31832
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31809,6 +31909,13 @@ function isExtensionRulesEnabled(extension, enabled) {
31809
31909
  }
31810
31910
  return enabled;
31811
31911
  }
31912
+ function getHTMLFromFragment(fragment, schema) {
31913
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31914
+ const temporaryDocument = document.implementation.createHTMLDocument();
31915
+ const container = temporaryDocument.createElement("div");
31916
+ container.appendChild(documentFragment);
31917
+ return container.innerHTML;
31918
+ }
31812
31919
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31813
31920
  let textBefore = "";
31814
31921
  const sliceEndPos = $from.parentOffset;
@@ -31919,7 +32026,7 @@ function inputRulesPlugin(props2) {
31919
32026
  init() {
31920
32027
  return null;
31921
32028
  },
31922
- apply(tr2, prev) {
32029
+ apply(tr2, prev, state2) {
31923
32030
  const stored = tr2.getMeta(plugin);
31924
32031
  if (stored) {
31925
32032
  return stored;
@@ -31928,7 +32035,13 @@ function inputRulesPlugin(props2) {
31928
32035
  const isSimulatedInput = !!simulatedInputMeta;
31929
32036
  if (isSimulatedInput) {
31930
32037
  setTimeout(() => {
31931
- const { from: from2, text } = simulatedInputMeta;
32038
+ let { text } = simulatedInputMeta;
32039
+ if (typeof text === "string") {
32040
+ text = text;
32041
+ } else {
32042
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32043
+ }
32044
+ const { from: from2 } = simulatedInputMeta;
31932
32045
  const to2 = from2 + text.length;
31933
32046
  run$1({
31934
32047
  editor,
@@ -31997,6 +32110,109 @@ function inputRulesPlugin(props2) {
31997
32110
  });
31998
32111
  return plugin;
31999
32112
  }
32113
+ function getType$1(value) {
32114
+ return Object.prototype.toString.call(value).slice(8, -1);
32115
+ }
32116
+ function isPlainObject$1(value) {
32117
+ if (getType$1(value) !== "Object") {
32118
+ return false;
32119
+ }
32120
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32121
+ }
32122
+ function mergeDeep(target, source) {
32123
+ const output = { ...target };
32124
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32125
+ Object.keys(source).forEach((key) => {
32126
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32127
+ output[key] = mergeDeep(target[key], source[key]);
32128
+ } else {
32129
+ output[key] = source[key];
32130
+ }
32131
+ });
32132
+ }
32133
+ return output;
32134
+ }
32135
+ class Mark {
32136
+ constructor(config = {}) {
32137
+ this.type = "mark";
32138
+ this.name = "mark";
32139
+ this.parent = null;
32140
+ this.child = null;
32141
+ this.config = {
32142
+ name: this.name,
32143
+ defaultOptions: {}
32144
+ };
32145
+ this.config = {
32146
+ ...this.config,
32147
+ ...config
32148
+ };
32149
+ this.name = this.config.name;
32150
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32151
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32152
+ }
32153
+ this.options = this.config.defaultOptions;
32154
+ if (this.config.addOptions) {
32155
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
32156
+ name: this.name
32157
+ }));
32158
+ }
32159
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32160
+ name: this.name,
32161
+ options: this.options
32162
+ })) || {};
32163
+ }
32164
+ static create(config = {}) {
32165
+ return new Mark(config);
32166
+ }
32167
+ configure(options = {}) {
32168
+ const extension = this.extend({
32169
+ ...this.config,
32170
+ addOptions: () => {
32171
+ return mergeDeep(this.options, options);
32172
+ }
32173
+ });
32174
+ extension.name = this.name;
32175
+ extension.parent = this.parent;
32176
+ return extension;
32177
+ }
32178
+ extend(extendedConfig = {}) {
32179
+ const extension = new Mark(extendedConfig);
32180
+ extension.parent = this;
32181
+ this.child = extension;
32182
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32183
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32184
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32185
+ }
32186
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32187
+ name: extension.name
32188
+ }));
32189
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32190
+ name: extension.name,
32191
+ options: extension.options
32192
+ }));
32193
+ return extension;
32194
+ }
32195
+ static handleExit({ editor, mark }) {
32196
+ const { tr: tr2 } = editor.state;
32197
+ const currentPos = editor.state.selection.$from;
32198
+ const isAtEnd = currentPos.pos === currentPos.end();
32199
+ if (isAtEnd) {
32200
+ const currentMarks = currentPos.marks();
32201
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32202
+ if (!isInMark) {
32203
+ return false;
32204
+ }
32205
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32206
+ if (removeMark2) {
32207
+ tr2.removeStoredMark(removeMark2);
32208
+ }
32209
+ tr2.insertText(" ", currentPos.pos);
32210
+ editor.view.dispatch(tr2);
32211
+ return true;
32212
+ }
32213
+ return false;
32214
+ }
32215
+ }
32000
32216
  function isNumber$1(value) {
32001
32217
  return typeof value === "number";
32002
32218
  }
@@ -32083,7 +32299,12 @@ function pasteRulesPlugin(props2) {
32083
32299
  let isPastedFromProseMirror = false;
32084
32300
  let isDroppedFromProseMirror = false;
32085
32301
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32086
- let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32302
+ let dropEvent;
32303
+ try {
32304
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32305
+ } catch (e) {
32306
+ dropEvent = null;
32307
+ }
32087
32308
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32088
32309
  const tr2 = state2.tr;
32089
32310
  const chainableState = createChainableState({
@@ -32102,7 +32323,11 @@ function pasteRulesPlugin(props2) {
32102
32323
  if (!handler || !tr2.steps.length) {
32103
32324
  return;
32104
32325
  }
32105
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32326
+ try {
32327
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32328
+ } catch (e) {
32329
+ dropEvent = null;
32330
+ }
32106
32331
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32107
32332
  return tr2;
32108
32333
  };
@@ -32147,7 +32372,13 @@ function pasteRulesPlugin(props2) {
32147
32372
  return;
32148
32373
  }
32149
32374
  if (isSimulatedPaste) {
32150
- const { from: from3, text } = simulatedPasteMeta;
32375
+ let { text } = simulatedPasteMeta;
32376
+ if (typeof text === "string") {
32377
+ text = text;
32378
+ } else {
32379
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32380
+ }
32381
+ const { from: from3 } = simulatedPasteMeta;
32151
32382
  const to3 = from3 + text.length;
32152
32383
  const pasteEvt = createClipboardPasteEvent(text);
32153
32384
  return processEvent({
@@ -32421,28 +32652,6 @@ class ExtensionManager {
32421
32652
  });
32422
32653
  }
32423
32654
  }
32424
- function getType$1(value) {
32425
- return Object.prototype.toString.call(value).slice(8, -1);
32426
- }
32427
- function isPlainObject$1(value) {
32428
- if (getType$1(value) !== "Object") {
32429
- return false;
32430
- }
32431
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32432
- }
32433
- function mergeDeep(target, source) {
32434
- const output = { ...target };
32435
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32436
- Object.keys(source).forEach((key) => {
32437
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32438
- output[key] = mergeDeep(target[key], source[key]);
32439
- } else {
32440
- output[key] = source[key];
32441
- }
32442
- });
32443
- }
32444
- return output;
32445
- }
32446
32655
  class Extension {
32447
32656
  constructor(config = {}) {
32448
32657
  this.type = "extension";
@@ -32693,23 +32902,29 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32693
32902
  }
32694
32903
  function findMarkInSet(marks, type3, attributes = {}) {
32695
32904
  return marks.find((item) => {
32696
- return item.type === type3 && objectIncludes(item.attrs, attributes);
32905
+ return item.type === type3 && objectIncludes(
32906
+ // Only check equality for the attributes that are provided
32907
+ Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32908
+ attributes
32909
+ );
32697
32910
  });
32698
32911
  }
32699
32912
  function isMarkInSet(marks, type3, attributes = {}) {
32700
32913
  return !!findMarkInSet(marks, type3, attributes);
32701
32914
  }
32702
- function getMarkRange($pos, type3, attributes = {}) {
32915
+ function getMarkRange($pos, type3, attributes) {
32916
+ var _a2;
32703
32917
  if (!$pos || !type3) {
32704
32918
  return;
32705
32919
  }
32706
32920
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32707
- if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32921
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32708
32922
  start2 = $pos.parent.childBefore($pos.parentOffset);
32709
32923
  }
32710
- if (!start2.node) {
32924
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32711
32925
  return;
32712
32926
  }
32927
+ attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32713
32928
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32714
32929
  if (!mark) {
32715
32930
  return;
@@ -32718,8 +32933,7 @@ function getMarkRange($pos, type3, attributes = {}) {
32718
32933
  let startPos = $pos.start() + start2.offset;
32719
32934
  let endIndex = startIndex + 1;
32720
32935
  let endPos = startPos + start2.node.nodeSize;
32721
- findMarkInSet([...start2.node.marks], type3, attributes);
32722
- while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32936
+ while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32723
32937
  startIndex -= 1;
32724
32938
  startPos -= $pos.parent.child(startIndex).nodeSize;
32725
32939
  }
@@ -32860,6 +33074,9 @@ function elementFromString(value) {
32860
33074
  return removeWhitespaces(html);
32861
33075
  }
32862
33076
  function createNodeFromContent(content, schema, options) {
33077
+ if (content instanceof Node$2 || content instanceof Fragment) {
33078
+ return content;
33079
+ }
32863
33080
  options = {
32864
33081
  slice: true,
32865
33082
  parseOptions: {},
@@ -32954,7 +33171,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32954
33171
  var _a2;
32955
33172
  if (dispatch) {
32956
33173
  options = {
32957
- parseOptions: {},
33174
+ parseOptions: editor.options.parseOptions,
32958
33175
  updateSelection: true,
32959
33176
  applyInputRules: false,
32960
33177
  applyPasteRules: false,
@@ -32974,7 +33191,9 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32974
33191
  editor,
32975
33192
  error: e,
32976
33193
  disableCollaboration: () => {
32977
- console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33194
+ if (editor.storage.collaboration) {
33195
+ editor.storage.collaboration.isDisabled = true;
33196
+ }
32978
33197
  }
32979
33198
  });
32980
33199
  return false;
@@ -33000,6 +33219,14 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33000
33219
  if (isOnlyTextContent) {
33001
33220
  if (Array.isArray(value)) {
33002
33221
  newContent = value.map((v2) => v2.text || "").join("");
33222
+ } else if (value instanceof Fragment) {
33223
+ let text = "";
33224
+ value.forEach((node) => {
33225
+ if (node.text) {
33226
+ text += node.text;
33227
+ }
33228
+ });
33229
+ newContent = text;
33003
33230
  } else if (typeof value === "object" && !!value && !!value.text) {
33004
33231
  newContent = value.text;
33005
33232
  } else {
@@ -33335,13 +33562,6 @@ function findParentNodeClosestToPos($pos, predicate) {
33335
33562
  function findParentNode(predicate) {
33336
33563
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33337
33564
  }
33338
- function getHTMLFromFragment(fragment, schema) {
33339
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33340
- const temporaryDocument = document.implementation.createHTMLDocument();
33341
- const container = temporaryDocument.createElement("div");
33342
- container.appendChild(documentFragment);
33343
- return container.innerHTML;
33344
- }
33345
33565
  function getText(node, options) {
33346
33566
  const range2 = {
33347
33567
  from: 0,
@@ -33627,18 +33847,22 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33627
33847
  };
33628
33848
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33629
33849
  const type3 = getNodeType(typeOrName, state2.schema);
33850
+ let attributesToCopy;
33851
+ if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33852
+ attributesToCopy = state2.selection.$anchor.parent.attrs;
33853
+ }
33630
33854
  if (!type3.isTextblock) {
33631
33855
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33632
33856
  return false;
33633
33857
  }
33634
33858
  return chain().command(({ commands: commands2 }) => {
33635
- const canSetBlock = setBlockType(type3, attributes)(state2);
33859
+ const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33636
33860
  if (canSetBlock) {
33637
33861
  return true;
33638
33862
  }
33639
33863
  return commands2.clearNodes();
33640
33864
  }).command(({ state: updatedState }) => {
33641
- return setBlockType(type3, attributes)(updatedState, dispatch);
33865
+ return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33642
33866
  }).run();
33643
33867
  };
33644
33868
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -33997,18 +34221,59 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
33997
34221
  tr2.selection.ranges.forEach((range2) => {
33998
34222
  const from2 = range2.$from.pos;
33999
34223
  const to2 = range2.$to.pos;
34000
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34001
- if (nodeType && nodeType === node.type) {
34002
- tr2.setNodeMarkup(pos, void 0, {
34003
- ...node.attrs,
34224
+ let lastPos;
34225
+ let lastNode;
34226
+ let trimmedFrom;
34227
+ let trimmedTo;
34228
+ if (tr2.selection.empty) {
34229
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34230
+ if (nodeType && nodeType === node.type) {
34231
+ trimmedFrom = Math.max(pos, from2);
34232
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34233
+ lastPos = pos;
34234
+ lastNode = node;
34235
+ }
34236
+ });
34237
+ } else {
34238
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34239
+ if (pos < from2 && nodeType && nodeType === node.type) {
34240
+ trimmedFrom = Math.max(pos, from2);
34241
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34242
+ lastPos = pos;
34243
+ lastNode = node;
34244
+ }
34245
+ if (pos >= from2 && pos <= to2) {
34246
+ if (nodeType && nodeType === node.type) {
34247
+ tr2.setNodeMarkup(pos, void 0, {
34248
+ ...node.attrs,
34249
+ ...attributes
34250
+ });
34251
+ }
34252
+ if (markType && node.marks.length) {
34253
+ node.marks.forEach((mark) => {
34254
+ if (markType === mark.type) {
34255
+ const trimmedFrom2 = Math.max(pos, from2);
34256
+ const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34257
+ tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34258
+ ...mark.attrs,
34259
+ ...attributes
34260
+ }));
34261
+ }
34262
+ });
34263
+ }
34264
+ }
34265
+ });
34266
+ }
34267
+ if (lastNode) {
34268
+ if (lastPos !== void 0) {
34269
+ tr2.setNodeMarkup(lastPos, void 0, {
34270
+ ...lastNode.attrs,
34004
34271
  ...attributes
34005
34272
  });
34006
34273
  }
34007
- if (markType && node.marks.length) {
34008
- node.marks.forEach((mark) => {
34274
+ if (markType && lastNode.marks.length) {
34275
+ lastNode.marks.forEach((mark) => {
34009
34276
  if (markType === mark.type) {
34010
- const trimmedFrom = Math.max(pos, from2);
34011
- const trimmedTo = Math.min(pos + node.nodeSize, to2);
34012
34277
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
34013
34278
  ...mark.attrs,
34014
34279
  ...attributes
@@ -34016,7 +34281,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34016
34281
  }
34017
34282
  });
34018
34283
  }
34019
- });
34284
+ }
34020
34285
  });
34021
34286
  }
34022
34287
  return true;
@@ -34098,6 +34363,26 @@ const Commands = Extension.create({
34098
34363
  };
34099
34364
  }
34100
34365
  });
34366
+ const Drop = Extension.create({
34367
+ name: "drop",
34368
+ addProseMirrorPlugins() {
34369
+ return [
34370
+ new Plugin({
34371
+ key: new PluginKey("tiptapDrop"),
34372
+ props: {
34373
+ handleDrop: (_2, e, slice4, moved2) => {
34374
+ this.editor.emit("drop", {
34375
+ editor: this.editor,
34376
+ event: e,
34377
+ slice: slice4,
34378
+ moved: moved2
34379
+ });
34380
+ }
34381
+ }
34382
+ })
34383
+ ];
34384
+ }
34385
+ });
34101
34386
  const Editable = Extension.create({
34102
34387
  name: "editable",
34103
34388
  addProseMirrorPlugins() {
@@ -34247,6 +34532,25 @@ const Keymap = Extension.create({
34247
34532
  ];
34248
34533
  }
34249
34534
  });
34535
+ const Paste = Extension.create({
34536
+ name: "paste",
34537
+ addProseMirrorPlugins() {
34538
+ return [
34539
+ new Plugin({
34540
+ key: new PluginKey("tiptapPaste"),
34541
+ props: {
34542
+ handlePaste: (_view, e, slice4) => {
34543
+ this.editor.emit("paste", {
34544
+ editor: this.editor,
34545
+ event: e,
34546
+ slice: slice4
34547
+ });
34548
+ }
34549
+ }
34550
+ })
34551
+ ];
34552
+ }
34553
+ });
34250
34554
  const Tabindex = Extension.create({
34251
34555
  name: "tabindex",
34252
34556
  addProseMirrorPlugins() {
@@ -34354,7 +34658,8 @@ class NodePos {
34354
34658
  const children2 = [];
34355
34659
  this.node.content.forEach((node, offset2) => {
34356
34660
  const isBlock = node.isBlock && !node.isTextblock;
34357
- const targetPos = this.pos + offset2 + 1;
34661
+ const isNonTextAtom = node.isAtom && !node.isText;
34662
+ const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34358
34663
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34359
34664
  if (!isBlock && $pos.depth <= this.depth) {
34360
34665
  return;
@@ -34423,30 +34728,14 @@ class NodePos {
34423
34728
  return nodes;
34424
34729
  }
34425
34730
  setAttribute(attributes) {
34426
- const oldSelection = this.editor.state.selection;
34427
- this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34731
+ const { tr: tr2 } = this.editor.state;
34732
+ tr2.setNodeMarkup(this.from, void 0, {
34733
+ ...this.node.attrs,
34734
+ ...attributes
34735
+ });
34736
+ this.editor.view.dispatch(tr2);
34428
34737
  }
34429
34738
  }
34430
- const DropPlugin = (onDrop) => {
34431
- return new Plugin({
34432
- key: new PluginKey("tiptapDrop"),
34433
- props: {
34434
- handleDrop: (_2, e, slice4, moved2) => {
34435
- onDrop(e, slice4, moved2);
34436
- }
34437
- }
34438
- });
34439
- };
34440
- const PastePlugin = (onPaste) => {
34441
- return new Plugin({
34442
- key: new PluginKey("tiptapPaste"),
34443
- props: {
34444
- handlePaste: (_view, e, slice4) => {
34445
- onPaste(e, slice4);
34446
- }
34447
- }
34448
- });
34449
- };
34450
34739
  const style = `.ProseMirror {
34451
34740
  position: relative;
34452
34741
  }
@@ -34589,12 +34878,8 @@ let Editor$1 = class Editor2 extends EventEmitter {
34589
34878
  this.on("focus", this.options.onFocus);
34590
34879
  this.on("blur", this.options.onBlur);
34591
34880
  this.on("destroy", this.options.onDestroy);
34592
- if (this.options.onPaste) {
34593
- this.registerPlugin(PastePlugin(this.options.onPaste));
34594
- }
34595
- if (this.options.onDrop) {
34596
- this.registerPlugin(DropPlugin(this.options.onDrop));
34597
- }
34881
+ this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34882
+ this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34598
34883
  window.setTimeout(() => {
34599
34884
  if (this.isDestroyed) {
34600
34885
  return;
@@ -34691,17 +34976,24 @@ let Editor$1 = class Editor2 extends EventEmitter {
34691
34976
  /**
34692
34977
  * Unregister a ProseMirror plugin.
34693
34978
  *
34694
- * @param nameOrPluginKey The plugins name
34979
+ * @param nameOrPluginKeyToRemove The plugins name
34695
34980
  * @returns The new editor state or undefined if the editor is destroyed
34696
34981
  */
34697
- unregisterPlugin(nameOrPluginKey) {
34982
+ unregisterPlugin(nameOrPluginKeyToRemove) {
34698
34983
  if (this.isDestroyed) {
34699
34984
  return void 0;
34700
34985
  }
34701
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34986
+ const prevPlugins = this.state.plugins;
34987
+ let plugins2 = prevPlugins;
34988
+ [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34989
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34990
+ plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34991
+ });
34992
+ if (prevPlugins.length === plugins2.length) {
34993
+ return void 0;
34994
+ }
34702
34995
  const state2 = this.state.reconfigure({
34703
- // @ts-ignore
34704
- plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34996
+ plugins: plugins2
34705
34997
  });
34706
34998
  this.view.updateState(state2);
34707
34999
  return state2;
@@ -34719,7 +35011,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34719
35011
  Commands,
34720
35012
  FocusEvents,
34721
35013
  Keymap,
34722
- Tabindex
35014
+ Tabindex,
35015
+ Drop,
35016
+ Paste
34723
35017
  ].filter((ext) => {
34724
35018
  if (typeof this.options.enableCoreExtensions === "object") {
34725
35019
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34749,6 +35043,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34749
35043
  * Creates a ProseMirror view.
34750
35044
  */
34751
35045
  createView() {
35046
+ var _a2;
34752
35047
  let doc2;
34753
35048
  try {
34754
35049
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34760,6 +35055,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34760
35055
  editor: this,
34761
35056
  error: e,
34762
35057
  disableCollaboration: () => {
35058
+ if (this.storage.collaboration) {
35059
+ this.storage.collaboration.isDisabled = true;
35060
+ }
34763
35061
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34764
35062
  this.createExtensionManager();
34765
35063
  }
@@ -34769,6 +35067,11 @@ let Editor$1 = class Editor2 extends EventEmitter {
34769
35067
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34770
35068
  this.view = new EditorView(this.options.element, {
34771
35069
  ...this.options.editorProps,
35070
+ attributes: {
35071
+ // add `role="textbox"` to the editor element
35072
+ role: "textbox",
35073
+ ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
35074
+ },
34772
35075
  dispatchTransaction: this.dispatchTransaction.bind(this),
34773
35076
  state: EditorState.create({
34774
35077
  doc: doc2,
@@ -35068,87 +35371,6 @@ function wrappingInputRule(config) {
35068
35371
  }
35069
35372
  });
35070
35373
  }
35071
- class Mark {
35072
- constructor(config = {}) {
35073
- this.type = "mark";
35074
- this.name = "mark";
35075
- this.parent = null;
35076
- this.child = null;
35077
- this.config = {
35078
- name: this.name,
35079
- defaultOptions: {}
35080
- };
35081
- this.config = {
35082
- ...this.config,
35083
- ...config
35084
- };
35085
- this.name = this.config.name;
35086
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35087
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35088
- }
35089
- this.options = this.config.defaultOptions;
35090
- if (this.config.addOptions) {
35091
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
35092
- name: this.name
35093
- }));
35094
- }
35095
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35096
- name: this.name,
35097
- options: this.options
35098
- })) || {};
35099
- }
35100
- static create(config = {}) {
35101
- return new Mark(config);
35102
- }
35103
- configure(options = {}) {
35104
- const extension = this.extend({
35105
- ...this.config,
35106
- addOptions: () => {
35107
- return mergeDeep(this.options, options);
35108
- }
35109
- });
35110
- extension.name = this.name;
35111
- extension.parent = this.parent;
35112
- return extension;
35113
- }
35114
- extend(extendedConfig = {}) {
35115
- const extension = new Mark(extendedConfig);
35116
- extension.parent = this;
35117
- this.child = extension;
35118
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35119
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35120
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35121
- }
35122
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35123
- name: extension.name
35124
- }));
35125
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35126
- name: extension.name,
35127
- options: extension.options
35128
- }));
35129
- return extension;
35130
- }
35131
- static handleExit({ editor, mark }) {
35132
- const { tr: tr2 } = editor.state;
35133
- const currentPos = editor.state.selection.$from;
35134
- const isAtEnd = currentPos.pos === currentPos.end();
35135
- if (isAtEnd) {
35136
- const currentMarks = currentPos.marks();
35137
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35138
- if (!isInMark) {
35139
- return false;
35140
- }
35141
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35142
- if (removeMark2) {
35143
- tr2.removeStoredMark(removeMark2);
35144
- }
35145
- tr2.insertText(" ", currentPos.pos);
35146
- editor.view.dispatch(tr2);
35147
- return true;
35148
- }
35149
- return false;
35150
- }
35151
- }
35152
35374
  let Node$1 = class Node3 {
35153
35375
  constructor(config = {}) {
35154
35376
  this.type = "node";
@@ -35978,7 +36200,7 @@ function drawCellSelection(state2) {
35978
36200
  return DecorationSet.create(state2.doc, cells);
35979
36201
  }
35980
36202
  function isCellBoundarySelection({ $from, $to }) {
35981
- if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36203
+ if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
35982
36204
  return false;
35983
36205
  let afterFrom = $from.pos;
35984
36206
  let beforeTo = $to.pos;
@@ -36141,260 +36363,827 @@ function fixTable(state2, table, tablePos, tr2) {
36141
36363
  }
36142
36364
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36143
36365
  }
36144
- function pastedCells(slice4) {
36145
- if (!slice4.size)
36146
- return null;
36147
- let { content, openStart, openEnd } = slice4;
36148
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36149
- openStart--;
36150
- openEnd--;
36151
- content = content.child(0).content;
36366
+ function selectedRect(state2) {
36367
+ const sel = state2.selection;
36368
+ const $pos = selectionCell(state2);
36369
+ const table = $pos.node(-1);
36370
+ const tableStart = $pos.start(-1);
36371
+ const map4 = TableMap.get(table);
36372
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36373
+ sel.$anchorCell.pos - tableStart,
36374
+ sel.$headCell.pos - tableStart
36375
+ ) : map4.findCell($pos.pos - tableStart);
36376
+ return { ...rect, tableStart, map: map4, table };
36377
+ }
36378
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36379
+ let refColumn = col > 0 ? -1 : 0;
36380
+ if (columnIsHeader(map4, table, col + refColumn)) {
36381
+ refColumn = col == 0 || col == map4.width ? null : 0;
36152
36382
  }
36153
- const first2 = content.child(0);
36154
- const role = first2.type.spec.tableRole;
36155
- const schema = first2.type.schema, rows = [];
36156
- if (role == "row") {
36157
- for (let i2 = 0; i2 < content.childCount; i2++) {
36158
- let cells = content.child(i2).content;
36159
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36160
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36161
- if (left2 || right2)
36162
- cells = fitSlice(
36163
- tableNodeTypes(schema).row,
36164
- new Slice(cells, left2, right2)
36165
- ).content;
36166
- rows.push(cells);
36383
+ for (let row = 0; row < map4.height; row++) {
36384
+ const index2 = row * map4.width + col;
36385
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36386
+ const pos = map4.map[index2];
36387
+ const cell = table.nodeAt(pos);
36388
+ tr2.setNodeMarkup(
36389
+ tr2.mapping.map(tableStart + pos),
36390
+ null,
36391
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36392
+ );
36393
+ row += cell.attrs.rowspan - 1;
36394
+ } else {
36395
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36396
+ const pos = map4.positionAt(row, col, table);
36397
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36167
36398
  }
36168
- } else if (role == "cell" || role == "header_cell") {
36169
- rows.push(
36170
- openStart || openEnd ? fitSlice(
36171
- tableNodeTypes(schema).row,
36172
- new Slice(content, openStart, openEnd)
36173
- ).content : content
36174
- );
36175
- } else {
36176
- return null;
36177
36399
  }
36178
- return ensureRectangular(schema, rows);
36400
+ return tr2;
36179
36401
  }
36180
- function ensureRectangular(schema, rows) {
36181
- const widths = [];
36182
- for (let i2 = 0; i2 < rows.length; i2++) {
36183
- const row = rows[i2];
36184
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36185
- const { rowspan, colspan } = row.child(j2).attrs;
36186
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36187
- widths[r2] = (widths[r2] || 0) + colspan;
36188
- }
36189
- }
36190
- let width = 0;
36191
- for (let r2 = 0; r2 < widths.length; r2++)
36192
- width = Math.max(width, widths[r2]);
36193
- for (let r2 = 0; r2 < widths.length; r2++) {
36194
- if (r2 >= rows.length)
36195
- rows.push(Fragment.empty);
36196
- if (widths[r2] < width) {
36197
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36198
- const cells = [];
36199
- for (let i2 = widths[r2]; i2 < width; i2++) {
36200
- cells.push(empty2);
36201
- }
36202
- rows[r2] = rows[r2].append(Fragment.from(cells));
36203
- }
36402
+ function addColumnBefore(state2, dispatch) {
36403
+ if (!isInTable(state2))
36404
+ return false;
36405
+ if (dispatch) {
36406
+ const rect = selectedRect(state2);
36407
+ dispatch(addColumn(state2.tr, rect, rect.left));
36204
36408
  }
36205
- return { height: rows.length, width, rows };
36409
+ return true;
36206
36410
  }
36207
- function fitSlice(nodeType, slice4) {
36208
- const node = nodeType.createAndFill();
36209
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36210
- return tr2.doc;
36411
+ function addColumnAfter(state2, dispatch) {
36412
+ if (!isInTable(state2))
36413
+ return false;
36414
+ if (dispatch) {
36415
+ const rect = selectedRect(state2);
36416
+ dispatch(addColumn(state2.tr, rect, rect.right));
36417
+ }
36418
+ return true;
36211
36419
  }
36212
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36213
- if (width != newWidth) {
36214
- const added = [];
36215
- const newRows = [];
36216
- for (let row = 0; row < rows.length; row++) {
36217
- const frag = rows[row], cells = [];
36218
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36219
- let cell = frag.child(i2 % frag.childCount);
36220
- if (col + cell.attrs.colspan > newWidth)
36221
- cell = cell.type.createChecked(
36222
- removeColSpan(
36223
- cell.attrs,
36224
- cell.attrs.colspan,
36225
- col + cell.attrs.colspan - newWidth
36226
- ),
36227
- cell.content
36228
- );
36229
- cells.push(cell);
36230
- col += cell.attrs.colspan;
36231
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36232
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36233
- }
36234
- newRows.push(Fragment.from(cells));
36420
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36421
+ const mapStart = tr2.mapping.maps.length;
36422
+ for (let row = 0; row < map4.height; ) {
36423
+ const index2 = row * map4.width + col;
36424
+ const pos = map4.map[index2];
36425
+ const cell = table.nodeAt(pos);
36426
+ const attrs = cell.attrs;
36427
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36428
+ tr2.setNodeMarkup(
36429
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36430
+ null,
36431
+ removeColSpan(attrs, col - map4.colCount(pos))
36432
+ );
36433
+ } else {
36434
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36435
+ tr2.delete(start2, start2 + cell.nodeSize);
36235
36436
  }
36236
- rows = newRows;
36237
- width = newWidth;
36437
+ row += attrs.rowspan;
36238
36438
  }
36239
- if (height != newHeight) {
36240
- const newRows = [];
36241
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36242
- const cells = [], source = rows[i2 % height];
36243
- for (let j2 = 0; j2 < source.childCount; j2++) {
36244
- let cell = source.child(j2);
36245
- if (row + cell.attrs.rowspan > newHeight)
36246
- cell = cell.type.create(
36247
- {
36248
- ...cell.attrs,
36249
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36250
- },
36251
- cell.content
36252
- );
36253
- cells.push(cell);
36439
+ }
36440
+ function deleteColumn(state2, dispatch) {
36441
+ if (!isInTable(state2))
36442
+ return false;
36443
+ if (dispatch) {
36444
+ const rect = selectedRect(state2);
36445
+ const tr2 = state2.tr;
36446
+ if (rect.left == 0 && rect.right == rect.map.width)
36447
+ return false;
36448
+ for (let i2 = rect.right - 1; ; i2--) {
36449
+ removeColumn(tr2, rect, i2);
36450
+ if (i2 == rect.left)
36451
+ break;
36452
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36453
+ if (!table) {
36454
+ throw RangeError("No table found");
36254
36455
  }
36255
- newRows.push(Fragment.from(cells));
36456
+ rect.table = table;
36457
+ rect.map = TableMap.get(table);
36256
36458
  }
36257
- rows = newRows;
36258
- height = newHeight;
36459
+ dispatch(tr2);
36259
36460
  }
36260
- return { width, height, rows };
36461
+ return true;
36261
36462
  }
36262
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36263
- const schema = tr2.doc.type.schema;
36264
- const types = tableNodeTypes(schema);
36265
- let empty2;
36266
- let emptyHead;
36267
- if (width > map4.width) {
36268
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36269
- const rowNode = table.child(row);
36270
- rowEnd += rowNode.nodeSize;
36271
- const cells = [];
36272
- let add2;
36273
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36274
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36275
- else
36276
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36277
- for (let i2 = map4.width; i2 < width; i2++)
36278
- cells.push(add2);
36279
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36463
+ function rowIsHeader(map4, table, row) {
36464
+ var _a2;
36465
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
36466
+ for (let col = 0; col < map4.width; col++)
36467
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36468
+ return false;
36469
+ return true;
36470
+ }
36471
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
36472
+ var _a2;
36473
+ let rowPos = tableStart;
36474
+ for (let i2 = 0; i2 < row; i2++)
36475
+ rowPos += table.child(i2).nodeSize;
36476
+ const cells = [];
36477
+ let refRow = row > 0 ? -1 : 0;
36478
+ if (rowIsHeader(map4, table, row + refRow))
36479
+ refRow = row == 0 || row == map4.height ? null : 0;
36480
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36481
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36482
+ const pos = map4.map[index2];
36483
+ const attrs = table.nodeAt(pos).attrs;
36484
+ tr2.setNodeMarkup(tableStart + pos, null, {
36485
+ ...attrs,
36486
+ rowspan: attrs.rowspan + 1
36487
+ });
36488
+ col += attrs.colspan - 1;
36489
+ } else {
36490
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36491
+ const node = type3 == null ? void 0 : type3.createAndFill();
36492
+ if (node)
36493
+ cells.push(node);
36280
36494
  }
36281
36495
  }
36282
- if (height > map4.height) {
36283
- const cells = [];
36284
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36285
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36286
- cells.push(
36287
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36288
- );
36289
- }
36290
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36291
- for (let i2 = map4.height; i2 < height; i2++)
36292
- rows.push(emptyRow);
36293
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36496
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36497
+ return tr2;
36498
+ }
36499
+ function addRowBefore(state2, dispatch) {
36500
+ if (!isInTable(state2))
36501
+ return false;
36502
+ if (dispatch) {
36503
+ const rect = selectedRect(state2);
36504
+ dispatch(addRow(state2.tr, rect, rect.top));
36294
36505
  }
36295
- return !!(empty2 || emptyHead);
36506
+ return true;
36296
36507
  }
36297
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36298
- if (top2 == 0 || top2 == map4.height)
36508
+ function addRowAfter(state2, dispatch) {
36509
+ if (!isInTable(state2))
36299
36510
  return false;
36300
- let found2 = false;
36301
- for (let col = left2; col < right2; col++) {
36302
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
36303
- if (map4.map[index2 - map4.width] == pos) {
36304
- found2 = true;
36305
- const cell = table.nodeAt(pos);
36306
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36307
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36308
- ...cell.attrs,
36309
- rowspan: top2 - cellTop
36511
+ if (dispatch) {
36512
+ const rect = selectedRect(state2);
36513
+ dispatch(addRow(state2.tr, rect, rect.bottom));
36514
+ }
36515
+ return true;
36516
+ }
36517
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
36518
+ let rowPos = 0;
36519
+ for (let i2 = 0; i2 < row; i2++)
36520
+ rowPos += table.child(i2).nodeSize;
36521
+ const nextRow = rowPos + table.child(row).nodeSize;
36522
+ const mapFrom = tr2.mapping.maps.length;
36523
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
36524
+ const seen = /* @__PURE__ */ new Set();
36525
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36526
+ const pos = map4.map[index2];
36527
+ if (seen.has(pos))
36528
+ continue;
36529
+ seen.add(pos);
36530
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
36531
+ const attrs = table.nodeAt(pos).attrs;
36532
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36533
+ ...attrs,
36534
+ rowspan: attrs.rowspan - 1
36310
36535
  });
36311
- tr2.insert(
36312
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36313
- cell.type.createAndFill({
36314
- ...cell.attrs,
36315
- rowspan: cellTop + cell.attrs.rowspan - top2
36316
- })
36536
+ col += attrs.colspan - 1;
36537
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36538
+ const cell = table.nodeAt(pos);
36539
+ const attrs = cell.attrs;
36540
+ const copy2 = cell.type.create(
36541
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36542
+ cell.content
36317
36543
  );
36318
- col += cell.attrs.colspan - 1;
36544
+ const newPos = map4.positionAt(row + 1, col, table);
36545
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36546
+ col += attrs.colspan - 1;
36319
36547
  }
36320
36548
  }
36321
- return found2;
36322
36549
  }
36323
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36324
- if (left2 == 0 || left2 == map4.width)
36550
+ function deleteRow(state2, dispatch) {
36551
+ if (!isInTable(state2))
36325
36552
  return false;
36326
- let found2 = false;
36327
- for (let row = top2; row < bottom2; row++) {
36328
- const index2 = row * map4.width + left2, pos = map4.map[index2];
36329
- if (map4.map[index2 - 1] == pos) {
36330
- found2 = true;
36331
- const cell = table.nodeAt(pos);
36332
- const cellLeft = map4.colCount(pos);
36333
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36334
- tr2.setNodeMarkup(
36335
- updatePos,
36336
- null,
36337
- removeColSpan(
36338
- cell.attrs,
36339
- left2 - cellLeft,
36340
- cell.attrs.colspan - (left2 - cellLeft)
36341
- )
36342
- );
36343
- tr2.insert(
36344
- updatePos + cell.nodeSize,
36345
- cell.type.createAndFill(
36346
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
36347
- )
36348
- );
36349
- row += cell.attrs.rowspan - 1;
36553
+ if (dispatch) {
36554
+ const rect = selectedRect(state2), tr2 = state2.tr;
36555
+ if (rect.top == 0 && rect.bottom == rect.map.height)
36556
+ return false;
36557
+ for (let i2 = rect.bottom - 1; ; i2--) {
36558
+ removeRow(tr2, rect, i2);
36559
+ if (i2 == rect.top)
36560
+ break;
36561
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36562
+ if (!table) {
36563
+ throw RangeError("No table found");
36564
+ }
36565
+ rect.table = table;
36566
+ rect.map = TableMap.get(rect.table);
36350
36567
  }
36568
+ dispatch(tr2);
36351
36569
  }
36352
- return found2;
36570
+ return true;
36353
36571
  }
36354
- function insertCells(state2, dispatch, tableStart, rect, cells) {
36355
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36356
- if (!table) {
36357
- throw new Error("No table found");
36358
- }
36359
- let map4 = TableMap.get(table);
36360
- const { top: top2, left: left2 } = rect;
36361
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36362
- const tr2 = state2.tr;
36363
- let mapFrom = 0;
36364
- function recomp() {
36365
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36366
- if (!table) {
36367
- throw new Error("No table found");
36368
- }
36369
- map4 = TableMap.get(table);
36370
- mapFrom = tr2.mapping.maps.length;
36572
+ function isEmpty(cell) {
36573
+ const c2 = cell.content;
36574
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36575
+ }
36576
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36577
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36578
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36579
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36580
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36581
+ return true;
36582
+ indexLeft += width;
36583
+ indexRight += width;
36371
36584
  }
36372
- if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
36373
- recomp();
36374
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
36375
- recomp();
36376
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
36377
- recomp();
36378
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
36379
- recomp();
36380
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
36381
- recomp();
36382
- for (let row = top2; row < bottom2; row++) {
36383
- const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
36384
- tr2.replace(
36385
- tr2.mapping.slice(mapFrom).map(from2 + tableStart),
36386
- tr2.mapping.slice(mapFrom).map(to2 + tableStart),
36387
- new Slice(cells.rows[row - top2], 0, 0)
36388
- );
36585
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
36586
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36587
+ return true;
36588
+ indexTop++;
36589
+ indexBottom++;
36389
36590
  }
36390
- recomp();
36391
- tr2.setSelection(
36392
- new CellSelection(
36393
- tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
36394
- tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
36395
- )
36396
- );
36397
- dispatch(tr2);
36591
+ return false;
36592
+ }
36593
+ function mergeCells(state2, dispatch) {
36594
+ const sel = state2.selection;
36595
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36596
+ return false;
36597
+ const rect = selectedRect(state2), { map: map4 } = rect;
36598
+ if (cellsOverlapRectangle(map4, rect))
36599
+ return false;
36600
+ if (dispatch) {
36601
+ const tr2 = state2.tr;
36602
+ const seen = {};
36603
+ let content = Fragment.empty;
36604
+ let mergedPos;
36605
+ let mergedCell;
36606
+ for (let row = rect.top; row < rect.bottom; row++) {
36607
+ for (let col = rect.left; col < rect.right; col++) {
36608
+ const cellPos = map4.map[row * map4.width + col];
36609
+ const cell = rect.table.nodeAt(cellPos);
36610
+ if (seen[cellPos] || !cell)
36611
+ continue;
36612
+ seen[cellPos] = true;
36613
+ if (mergedPos == null) {
36614
+ mergedPos = cellPos;
36615
+ mergedCell = cell;
36616
+ } else {
36617
+ if (!isEmpty(cell))
36618
+ content = content.append(cell.content);
36619
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36620
+ tr2.delete(mapped, mapped + cell.nodeSize);
36621
+ }
36622
+ }
36623
+ }
36624
+ if (mergedPos == null || mergedCell == null) {
36625
+ return true;
36626
+ }
36627
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36628
+ ...addColSpan(
36629
+ mergedCell.attrs,
36630
+ mergedCell.attrs.colspan,
36631
+ rect.right - rect.left - mergedCell.attrs.colspan
36632
+ ),
36633
+ rowspan: rect.bottom - rect.top
36634
+ });
36635
+ if (content.size) {
36636
+ const end2 = mergedPos + 1 + mergedCell.content.size;
36637
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36638
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36639
+ }
36640
+ tr2.setSelection(
36641
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36642
+ );
36643
+ dispatch(tr2);
36644
+ }
36645
+ return true;
36646
+ }
36647
+ function splitCell(state2, dispatch) {
36648
+ const nodeTypes = tableNodeTypes(state2.schema);
36649
+ return splitCellWithType(({ node }) => {
36650
+ return nodeTypes[node.type.spec.tableRole];
36651
+ })(state2, dispatch);
36652
+ }
36653
+ function splitCellWithType(getCellType) {
36654
+ return (state2, dispatch) => {
36655
+ var _a2;
36656
+ const sel = state2.selection;
36657
+ let cellNode;
36658
+ let cellPos;
36659
+ if (!(sel instanceof CellSelection)) {
36660
+ cellNode = cellWrapping(sel.$from);
36661
+ if (!cellNode)
36662
+ return false;
36663
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36664
+ } else {
36665
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
36666
+ return false;
36667
+ cellNode = sel.$anchorCell.nodeAfter;
36668
+ cellPos = sel.$anchorCell.pos;
36669
+ }
36670
+ if (cellNode == null || cellPos == null) {
36671
+ return false;
36672
+ }
36673
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36674
+ return false;
36675
+ }
36676
+ if (dispatch) {
36677
+ let baseAttrs = cellNode.attrs;
36678
+ const attrs = [];
36679
+ const colwidth = baseAttrs.colwidth;
36680
+ if (baseAttrs.rowspan > 1)
36681
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
36682
+ if (baseAttrs.colspan > 1)
36683
+ baseAttrs = { ...baseAttrs, colspan: 1 };
36684
+ const rect = selectedRect(state2), tr2 = state2.tr;
36685
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36686
+ attrs.push(
36687
+ colwidth ? {
36688
+ ...baseAttrs,
36689
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36690
+ } : baseAttrs
36691
+ );
36692
+ let lastCell;
36693
+ for (let row = rect.top; row < rect.bottom; row++) {
36694
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
36695
+ if (row == rect.top)
36696
+ pos += cellNode.nodeSize;
36697
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36698
+ if (col == rect.left && row == rect.top)
36699
+ continue;
36700
+ tr2.insert(
36701
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36702
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36703
+ );
36704
+ }
36705
+ }
36706
+ tr2.setNodeMarkup(
36707
+ cellPos,
36708
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36709
+ attrs[0]
36710
+ );
36711
+ if (sel instanceof CellSelection)
36712
+ tr2.setSelection(
36713
+ new CellSelection(
36714
+ tr2.doc.resolve(sel.$anchorCell.pos),
36715
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
36716
+ )
36717
+ );
36718
+ dispatch(tr2);
36719
+ }
36720
+ return true;
36721
+ };
36722
+ }
36723
+ function setCellAttr(name, value) {
36724
+ return function(state2, dispatch) {
36725
+ if (!isInTable(state2))
36726
+ return false;
36727
+ const $cell = selectionCell(state2);
36728
+ if ($cell.nodeAfter.attrs[name] === value)
36729
+ return false;
36730
+ if (dispatch) {
36731
+ const tr2 = state2.tr;
36732
+ if (state2.selection instanceof CellSelection)
36733
+ state2.selection.forEachCell((node, pos) => {
36734
+ if (node.attrs[name] !== value)
36735
+ tr2.setNodeMarkup(pos, null, {
36736
+ ...node.attrs,
36737
+ [name]: value
36738
+ });
36739
+ });
36740
+ else
36741
+ tr2.setNodeMarkup($cell.pos, null, {
36742
+ ...$cell.nodeAfter.attrs,
36743
+ [name]: value
36744
+ });
36745
+ dispatch(tr2);
36746
+ }
36747
+ return true;
36748
+ };
36749
+ }
36750
+ function deprecated_toggleHeader(type3) {
36751
+ return function(state2, dispatch) {
36752
+ if (!isInTable(state2))
36753
+ return false;
36754
+ if (dispatch) {
36755
+ const types = tableNodeTypes(state2.schema);
36756
+ const rect = selectedRect(state2), tr2 = state2.tr;
36757
+ const cells = rect.map.cellsInRect(
36758
+ type3 == "column" ? {
36759
+ left: rect.left,
36760
+ top: 0,
36761
+ right: rect.right,
36762
+ bottom: rect.map.height
36763
+ } : type3 == "row" ? {
36764
+ left: 0,
36765
+ top: rect.top,
36766
+ right: rect.map.width,
36767
+ bottom: rect.bottom
36768
+ } : rect
36769
+ );
36770
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36771
+ for (let i2 = 0; i2 < cells.length; i2++)
36772
+ if (nodes[i2].type == types.header_cell)
36773
+ tr2.setNodeMarkup(
36774
+ rect.tableStart + cells[i2],
36775
+ types.cell,
36776
+ nodes[i2].attrs
36777
+ );
36778
+ if (tr2.steps.length == 0)
36779
+ for (let i2 = 0; i2 < cells.length; i2++)
36780
+ tr2.setNodeMarkup(
36781
+ rect.tableStart + cells[i2],
36782
+ types.header_cell,
36783
+ nodes[i2].attrs
36784
+ );
36785
+ dispatch(tr2);
36786
+ }
36787
+ return true;
36788
+ };
36789
+ }
36790
+ function isHeaderEnabledByType(type3, rect, types) {
36791
+ const cellPositions = rect.map.cellsInRect({
36792
+ left: 0,
36793
+ top: 0,
36794
+ right: type3 == "row" ? rect.map.width : 1,
36795
+ bottom: type3 == "column" ? rect.map.height : 1
36796
+ });
36797
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
36798
+ const cell = rect.table.nodeAt(cellPositions[i2]);
36799
+ if (cell && cell.type !== types.header_cell) {
36800
+ return false;
36801
+ }
36802
+ }
36803
+ return true;
36804
+ }
36805
+ function toggleHeader(type3, options) {
36806
+ options = options || { useDeprecatedLogic: false };
36807
+ if (options.useDeprecatedLogic)
36808
+ return deprecated_toggleHeader(type3);
36809
+ return function(state2, dispatch) {
36810
+ if (!isInTable(state2))
36811
+ return false;
36812
+ if (dispatch) {
36813
+ const types = tableNodeTypes(state2.schema);
36814
+ const rect = selectedRect(state2), tr2 = state2.tr;
36815
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36816
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
36817
+ "column",
36818
+ rect,
36819
+ types
36820
+ );
36821
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36822
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36823
+ const cellsRect = type3 == "column" ? {
36824
+ left: 0,
36825
+ top: selectionStartsAt,
36826
+ right: 1,
36827
+ bottom: rect.map.height
36828
+ } : type3 == "row" ? {
36829
+ left: selectionStartsAt,
36830
+ top: 0,
36831
+ right: rect.map.width,
36832
+ bottom: 1
36833
+ } : rect;
36834
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36835
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36836
+ const cellPos = relativeCellPos + rect.tableStart;
36837
+ const cell = tr2.doc.nodeAt(cellPos);
36838
+ if (cell) {
36839
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36840
+ }
36841
+ });
36842
+ dispatch(tr2);
36843
+ }
36844
+ return true;
36845
+ };
36846
+ }
36847
+ toggleHeader("row", {
36848
+ useDeprecatedLogic: true
36849
+ });
36850
+ toggleHeader("column", {
36851
+ useDeprecatedLogic: true
36852
+ });
36853
+ var toggleHeaderCell = toggleHeader("cell", {
36854
+ useDeprecatedLogic: true
36855
+ });
36856
+ function findNextCell($cell, dir) {
36857
+ if (dir < 0) {
36858
+ const before = $cell.nodeBefore;
36859
+ if (before)
36860
+ return $cell.pos - before.nodeSize;
36861
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36862
+ const rowNode = $cell.node(-1).child(row);
36863
+ const lastChild2 = rowNode.lastChild;
36864
+ if (lastChild2) {
36865
+ return rowEnd - 1 - lastChild2.nodeSize;
36866
+ }
36867
+ rowEnd -= rowNode.nodeSize;
36868
+ }
36869
+ } else {
36870
+ if ($cell.index() < $cell.parent.childCount - 1) {
36871
+ return $cell.pos + $cell.nodeAfter.nodeSize;
36872
+ }
36873
+ const table = $cell.node(-1);
36874
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36875
+ const rowNode = table.child(row);
36876
+ if (rowNode.childCount)
36877
+ return rowStart + 1;
36878
+ rowStart += rowNode.nodeSize;
36879
+ }
36880
+ }
36881
+ return null;
36882
+ }
36883
+ function goToNextCell(direction) {
36884
+ return function(state2, dispatch) {
36885
+ if (!isInTable(state2))
36886
+ return false;
36887
+ const cell = findNextCell(selectionCell(state2), direction);
36888
+ if (cell == null)
36889
+ return false;
36890
+ if (dispatch) {
36891
+ const $cell = state2.doc.resolve(cell);
36892
+ dispatch(
36893
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36894
+ );
36895
+ }
36896
+ return true;
36897
+ };
36898
+ }
36899
+ function deleteTable(state2, dispatch) {
36900
+ const $pos = state2.selection.$anchor;
36901
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
36902
+ const node = $pos.node(d2);
36903
+ if (node.type.spec.tableRole == "table") {
36904
+ if (dispatch)
36905
+ dispatch(
36906
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36907
+ );
36908
+ return true;
36909
+ }
36910
+ }
36911
+ return false;
36912
+ }
36913
+ function deleteCellSelection(state2, dispatch) {
36914
+ const sel = state2.selection;
36915
+ if (!(sel instanceof CellSelection))
36916
+ return false;
36917
+ if (dispatch) {
36918
+ const tr2 = state2.tr;
36919
+ const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36920
+ sel.forEachCell((cell, pos) => {
36921
+ if (!cell.content.eq(baseContent))
36922
+ tr2.replace(
36923
+ tr2.mapping.map(pos + 1),
36924
+ tr2.mapping.map(pos + cell.nodeSize - 1),
36925
+ new Slice(baseContent, 0, 0)
36926
+ );
36927
+ });
36928
+ if (tr2.docChanged)
36929
+ dispatch(tr2);
36930
+ }
36931
+ return true;
36932
+ }
36933
+ function pastedCells(slice4) {
36934
+ if (!slice4.size)
36935
+ return null;
36936
+ let { content, openStart, openEnd } = slice4;
36937
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36938
+ openStart--;
36939
+ openEnd--;
36940
+ content = content.child(0).content;
36941
+ }
36942
+ const first2 = content.child(0);
36943
+ const role = first2.type.spec.tableRole;
36944
+ const schema = first2.type.schema, rows = [];
36945
+ if (role == "row") {
36946
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36947
+ let cells = content.child(i2).content;
36948
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36949
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36950
+ if (left2 || right2)
36951
+ cells = fitSlice(
36952
+ tableNodeTypes(schema).row,
36953
+ new Slice(cells, left2, right2)
36954
+ ).content;
36955
+ rows.push(cells);
36956
+ }
36957
+ } else if (role == "cell" || role == "header_cell") {
36958
+ rows.push(
36959
+ openStart || openEnd ? fitSlice(
36960
+ tableNodeTypes(schema).row,
36961
+ new Slice(content, openStart, openEnd)
36962
+ ).content : content
36963
+ );
36964
+ } else {
36965
+ return null;
36966
+ }
36967
+ return ensureRectangular(schema, rows);
36968
+ }
36969
+ function ensureRectangular(schema, rows) {
36970
+ const widths = [];
36971
+ for (let i2 = 0; i2 < rows.length; i2++) {
36972
+ const row = rows[i2];
36973
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36974
+ const { rowspan, colspan } = row.child(j2).attrs;
36975
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36976
+ widths[r2] = (widths[r2] || 0) + colspan;
36977
+ }
36978
+ }
36979
+ let width = 0;
36980
+ for (let r2 = 0; r2 < widths.length; r2++)
36981
+ width = Math.max(width, widths[r2]);
36982
+ for (let r2 = 0; r2 < widths.length; r2++) {
36983
+ if (r2 >= rows.length)
36984
+ rows.push(Fragment.empty);
36985
+ if (widths[r2] < width) {
36986
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36987
+ const cells = [];
36988
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36989
+ cells.push(empty2);
36990
+ }
36991
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36992
+ }
36993
+ }
36994
+ return { height: rows.length, width, rows };
36995
+ }
36996
+ function fitSlice(nodeType, slice4) {
36997
+ const node = nodeType.createAndFill();
36998
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36999
+ return tr2.doc;
37000
+ }
37001
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
37002
+ if (width != newWidth) {
37003
+ const added = [];
37004
+ const newRows = [];
37005
+ for (let row = 0; row < rows.length; row++) {
37006
+ const frag = rows[row], cells = [];
37007
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
37008
+ let cell = frag.child(i2 % frag.childCount);
37009
+ if (col + cell.attrs.colspan > newWidth)
37010
+ cell = cell.type.createChecked(
37011
+ removeColSpan(
37012
+ cell.attrs,
37013
+ cell.attrs.colspan,
37014
+ col + cell.attrs.colspan - newWidth
37015
+ ),
37016
+ cell.content
37017
+ );
37018
+ cells.push(cell);
37019
+ col += cell.attrs.colspan;
37020
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
37021
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
37022
+ }
37023
+ newRows.push(Fragment.from(cells));
37024
+ }
37025
+ rows = newRows;
37026
+ width = newWidth;
37027
+ }
37028
+ if (height != newHeight) {
37029
+ const newRows = [];
37030
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
37031
+ const cells = [], source = rows[i2 % height];
37032
+ for (let j2 = 0; j2 < source.childCount; j2++) {
37033
+ let cell = source.child(j2);
37034
+ if (row + cell.attrs.rowspan > newHeight)
37035
+ cell = cell.type.create(
37036
+ {
37037
+ ...cell.attrs,
37038
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
37039
+ },
37040
+ cell.content
37041
+ );
37042
+ cells.push(cell);
37043
+ }
37044
+ newRows.push(Fragment.from(cells));
37045
+ }
37046
+ rows = newRows;
37047
+ height = newHeight;
37048
+ }
37049
+ return { width, height, rows };
37050
+ }
37051
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
37052
+ const schema = tr2.doc.type.schema;
37053
+ const types = tableNodeTypes(schema);
37054
+ let empty2;
37055
+ let emptyHead;
37056
+ if (width > map4.width) {
37057
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
37058
+ const rowNode = table.child(row);
37059
+ rowEnd += rowNode.nodeSize;
37060
+ const cells = [];
37061
+ let add2;
37062
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
37063
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
37064
+ else
37065
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
37066
+ for (let i2 = map4.width; i2 < width; i2++)
37067
+ cells.push(add2);
37068
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
37069
+ }
37070
+ }
37071
+ if (height > map4.height) {
37072
+ const cells = [];
37073
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
37074
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
37075
+ cells.push(
37076
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
37077
+ );
37078
+ }
37079
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
37080
+ for (let i2 = map4.height; i2 < height; i2++)
37081
+ rows.push(emptyRow);
37082
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
37083
+ }
37084
+ return !!(empty2 || emptyHead);
37085
+ }
37086
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
37087
+ if (top2 == 0 || top2 == map4.height)
37088
+ return false;
37089
+ let found2 = false;
37090
+ for (let col = left2; col < right2; col++) {
37091
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
37092
+ if (map4.map[index2 - map4.width] == pos) {
37093
+ found2 = true;
37094
+ const cell = table.nodeAt(pos);
37095
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
37096
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
37097
+ ...cell.attrs,
37098
+ rowspan: top2 - cellTop
37099
+ });
37100
+ tr2.insert(
37101
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
37102
+ cell.type.createAndFill({
37103
+ ...cell.attrs,
37104
+ rowspan: cellTop + cell.attrs.rowspan - top2
37105
+ })
37106
+ );
37107
+ col += cell.attrs.colspan - 1;
37108
+ }
37109
+ }
37110
+ return found2;
37111
+ }
37112
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37113
+ if (left2 == 0 || left2 == map4.width)
37114
+ return false;
37115
+ let found2 = false;
37116
+ for (let row = top2; row < bottom2; row++) {
37117
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
37118
+ if (map4.map[index2 - 1] == pos) {
37119
+ found2 = true;
37120
+ const cell = table.nodeAt(pos);
37121
+ const cellLeft = map4.colCount(pos);
37122
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37123
+ tr2.setNodeMarkup(
37124
+ updatePos,
37125
+ null,
37126
+ removeColSpan(
37127
+ cell.attrs,
37128
+ left2 - cellLeft,
37129
+ cell.attrs.colspan - (left2 - cellLeft)
37130
+ )
37131
+ );
37132
+ tr2.insert(
37133
+ updatePos + cell.nodeSize,
37134
+ cell.type.createAndFill(
37135
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
37136
+ )
37137
+ );
37138
+ row += cell.attrs.rowspan - 1;
37139
+ }
37140
+ }
37141
+ return found2;
37142
+ }
37143
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
37144
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37145
+ if (!table) {
37146
+ throw new Error("No table found");
37147
+ }
37148
+ let map4 = TableMap.get(table);
37149
+ const { top: top2, left: left2 } = rect;
37150
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37151
+ const tr2 = state2.tr;
37152
+ let mapFrom = 0;
37153
+ function recomp() {
37154
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37155
+ if (!table) {
37156
+ throw new Error("No table found");
37157
+ }
37158
+ map4 = TableMap.get(table);
37159
+ mapFrom = tr2.mapping.maps.length;
37160
+ }
37161
+ if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37162
+ recomp();
37163
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
37164
+ recomp();
37165
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
37166
+ recomp();
37167
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
37168
+ recomp();
37169
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
37170
+ recomp();
37171
+ for (let row = top2; row < bottom2; row++) {
37172
+ const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
37173
+ tr2.replace(
37174
+ tr2.mapping.slice(mapFrom).map(from2 + tableStart),
37175
+ tr2.mapping.slice(mapFrom).map(to2 + tableStart),
37176
+ new Slice(cells.rows[row - top2], 0, 0)
37177
+ );
37178
+ }
37179
+ recomp();
37180
+ tr2.setSelection(
37181
+ new CellSelection(
37182
+ tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
37183
+ tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
37184
+ )
37185
+ );
37186
+ dispatch(tr2);
36398
37187
  }
36399
37188
  var handleKeyDown$1 = keydownHandler({
36400
37189
  ArrowLeft: arrow$3("horiz", -1),
@@ -36475,28 +37264,8 @@ function shiftArrow(axis2, dir) {
36475
37264
  state2,
36476
37265
  dispatch,
36477
37266
  new CellSelection(cellSel.$anchorCell, $head)
36478
- );
36479
- };
36480
- }
36481
- function deleteCellSelection(state2, dispatch) {
36482
- const sel = state2.selection;
36483
- if (!(sel instanceof CellSelection))
36484
- return false;
36485
- if (dispatch) {
36486
- const tr2 = state2.tr;
36487
- const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36488
- sel.forEachCell((cell, pos) => {
36489
- if (!cell.content.eq(baseContent))
36490
- tr2.replace(
36491
- tr2.mapping.map(pos + 1),
36492
- tr2.mapping.map(pos + cell.nodeSize - 1),
36493
- new Slice(baseContent, 0, 0)
36494
- );
36495
- });
36496
- if (tr2.docChanged)
36497
- dispatch(tr2);
36498
- }
36499
- return true;
37267
+ );
37268
+ };
36500
37269
  }
36501
37270
  function handleTripleClick(view, pos) {
36502
37271
  const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
@@ -36636,28 +37405,37 @@ function cellUnderMouse(view, event) {
36636
37405
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
36637
37406
  }
36638
37407
  var TableView$1 = class TableView2 {
36639
- constructor(node, cellMinWidth) {
37408
+ constructor(node, defaultCellMinWidth) {
36640
37409
  this.node = node;
36641
- this.cellMinWidth = cellMinWidth;
37410
+ this.defaultCellMinWidth = defaultCellMinWidth;
36642
37411
  this.dom = document.createElement("div");
36643
37412
  this.dom.className = "tableWrapper";
36644
37413
  this.table = this.dom.appendChild(document.createElement("table"));
37414
+ this.table.style.setProperty(
37415
+ "--default-cell-min-width",
37416
+ `${defaultCellMinWidth}px`
37417
+ );
36645
37418
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
36646
- updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37419
+ updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36647
37420
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
36648
37421
  }
36649
37422
  update(node) {
36650
37423
  if (node.type != this.node.type)
36651
37424
  return false;
36652
37425
  this.node = node;
36653
- updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37426
+ updateColumnsOnResize(
37427
+ node,
37428
+ this.colgroup,
37429
+ this.table,
37430
+ this.defaultCellMinWidth
37431
+ );
36654
37432
  return true;
36655
37433
  }
36656
37434
  ignoreMutation(record) {
36657
37435
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
36658
37436
  }
36659
37437
  };
36660
- function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37438
+ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36661
37439
  var _a2;
36662
37440
  let totalWidth = 0;
36663
37441
  let fixedWidth = true;
@@ -36670,14 +37448,17 @@ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol,
36670
37448
  for (let j2 = 0; j2 < colspan; j2++, col++) {
36671
37449
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
36672
37450
  const cssWidth = hasWidth ? hasWidth + "px" : "";
36673
- totalWidth += hasWidth || cellMinWidth;
37451
+ totalWidth += hasWidth || defaultCellMinWidth;
36674
37452
  if (!hasWidth)
36675
37453
  fixedWidth = false;
36676
37454
  if (!nextDOM) {
36677
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37455
+ const col2 = document.createElement("col");
37456
+ col2.style.width = cssWidth;
37457
+ colgroup.appendChild(col2);
36678
37458
  } else {
36679
- if (nextDOM.style.width != cssWidth)
37459
+ if (nextDOM.style.width != cssWidth) {
36680
37460
  nextDOM.style.width = cssWidth;
37461
+ }
36681
37462
  nextDOM = nextDOM.nextSibling;
36682
37463
  }
36683
37464
  }
@@ -36701,6 +37482,7 @@ var columnResizingPluginKey = new PluginKey(
36701
37482
  function columnResizing({
36702
37483
  handleWidth = 5,
36703
37484
  cellMinWidth = 25,
37485
+ defaultCellMinWidth = 100,
36704
37486
  View = TableView$1,
36705
37487
  lastColumnResizable = true
36706
37488
  } = {}) {
@@ -36713,7 +37495,7 @@ function columnResizing({
36713
37495
  const tableName = tableNodeTypes(state2.schema).table.name;
36714
37496
  if (View && nodeViews) {
36715
37497
  nodeViews[tableName] = (node, view) => {
36716
- return new View(node, cellMinWidth, view);
37498
+ return new View(node, defaultCellMinWidth, view);
36717
37499
  };
36718
37500
  }
36719
37501
  return new ResizeState(-1, false);
@@ -36729,19 +37511,13 @@ function columnResizing({
36729
37511
  },
36730
37512
  handleDOMEvents: {
36731
37513
  mousemove: (view, event) => {
36732
- handleMouseMove(
36733
- view,
36734
- event,
36735
- handleWidth,
36736
- cellMinWidth,
36737
- lastColumnResizable
36738
- );
37514
+ handleMouseMove(view, event, handleWidth, lastColumnResizable);
36739
37515
  },
36740
37516
  mouseleave: (view) => {
36741
37517
  handleMouseLeave(view);
36742
37518
  },
36743
37519
  mousedown: (view, event) => {
36744
- handleMouseDown2(view, event, cellMinWidth);
37520
+ handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36745
37521
  }
36746
37522
  },
36747
37523
  decorations: (state2) => {
@@ -36777,7 +37553,7 @@ var ResizeState = class _ResizeState {
36777
37553
  return state2;
36778
37554
  }
36779
37555
  };
36780
- function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37556
+ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36781
37557
  const pluginState = columnResizingPluginKey.getState(view.state);
36782
37558
  if (!pluginState)
36783
37559
  return;
@@ -36798,722 +37574,198 @@ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResiz
36798
37574
  const map4 = TableMap.get(table);
36799
37575
  const tableStart = $cell.start(-1);
36800
37576
  const col = map4.colCount($cell.pos - tableStart) + $cell.nodeAfter.attrs.colspan - 1;
36801
- if (col == map4.width - 1) {
36802
- return;
36803
- }
36804
- }
36805
- updateHandle(view, cell);
36806
- }
36807
- }
36808
- }
36809
- function handleMouseLeave(view) {
36810
- const pluginState = columnResizingPluginKey.getState(view.state);
36811
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36812
- updateHandle(view, -1);
36813
- }
36814
- function handleMouseDown2(view, event, cellMinWidth) {
36815
- var _a2;
36816
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36817
- const pluginState = columnResizingPluginKey.getState(view.state);
36818
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36819
- return false;
36820
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36821
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36822
- view.dispatch(
36823
- view.state.tr.setMeta(columnResizingPluginKey, {
36824
- setDragging: { startX: event.clientX, startWidth: width }
36825
- })
36826
- );
36827
- function finish(event2) {
36828
- win.removeEventListener("mouseup", finish);
36829
- win.removeEventListener("mousemove", move);
36830
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36831
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36832
- updateColumnWidth(
36833
- view,
36834
- pluginState2.activeHandle,
36835
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36836
- );
36837
- view.dispatch(
36838
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36839
- );
36840
- }
36841
- }
36842
- function move(event2) {
36843
- if (!event2.which)
36844
- return finish(event2);
36845
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36846
- if (!pluginState2)
36847
- return;
36848
- if (pluginState2.dragging) {
36849
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36850
- displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36851
- }
36852
- }
36853
- win.addEventListener("mouseup", finish);
36854
- win.addEventListener("mousemove", move);
36855
- event.preventDefault();
36856
- return true;
36857
- }
36858
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
36859
- const width = colwidth && colwidth[colwidth.length - 1];
36860
- if (width)
36861
- return width;
36862
- const dom = view.domAtPos(cellPos);
36863
- const node = dom.node.childNodes[dom.offset];
36864
- let domWidth = node.offsetWidth, parts = colspan;
36865
- if (colwidth) {
36866
- for (let i2 = 0; i2 < colspan; i2++)
36867
- if (colwidth[i2]) {
36868
- domWidth -= colwidth[i2];
36869
- parts--;
36870
- }
36871
- }
36872
- return domWidth / parts;
36873
- }
36874
- function domCellAround(target) {
36875
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
36876
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36877
- return target;
36878
- }
36879
- function edgeCell(view, event, side, handleWidth) {
36880
- const offset2 = side == "right" ? -handleWidth : handleWidth;
36881
- const found2 = view.posAtCoords({
36882
- left: event.clientX + offset2,
36883
- top: event.clientY
36884
- });
36885
- if (!found2)
36886
- return -1;
36887
- const { pos } = found2;
36888
- const $cell = cellAround(view.state.doc.resolve(pos));
36889
- if (!$cell)
36890
- return -1;
36891
- if (side == "right")
36892
- return $cell.pos;
36893
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36894
- const index2 = map4.map.indexOf($cell.pos - start2);
36895
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36896
- }
36897
- function draggedWidth(dragging, event, cellMinWidth) {
36898
- const offset2 = event.clientX - dragging.startX;
36899
- return Math.max(cellMinWidth, dragging.startWidth + offset2);
36900
- }
36901
- function updateHandle(view, value) {
36902
- view.dispatch(
36903
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36904
- );
36905
- }
36906
- function updateColumnWidth(view, cell, width) {
36907
- const $cell = view.state.doc.resolve(cell);
36908
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36909
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36910
- const tr2 = view.state.tr;
36911
- for (let row = 0; row < map4.height; row++) {
36912
- const mapIndex = row * map4.width + col;
36913
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36914
- continue;
36915
- const pos = map4.map[mapIndex];
36916
- const attrs = table.nodeAt(pos).attrs;
36917
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36918
- if (attrs.colwidth && attrs.colwidth[index2] == width)
36919
- continue;
36920
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36921
- colwidth[index2] = width;
36922
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36923
- }
36924
- if (tr2.docChanged)
36925
- view.dispatch(tr2);
36926
- }
36927
- function displayColumnWidth(view, cell, width, cellMinWidth) {
36928
- const $cell = view.state.doc.resolve(cell);
36929
- const table = $cell.node(-1), start2 = $cell.start(-1);
36930
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36931
- let dom = view.domAtPos($cell.start(-1)).node;
36932
- while (dom && dom.nodeName != "TABLE") {
36933
- dom = dom.parentNode;
36934
- }
36935
- if (!dom)
36936
- return;
36937
- updateColumnsOnResize(
36938
- table,
36939
- dom.firstChild,
36940
- dom,
36941
- cellMinWidth,
36942
- col,
36943
- width
36944
- );
36945
- }
36946
- function zeroes(n2) {
36947
- return Array(n2).fill(0);
36948
- }
36949
- function handleDecorations(state2, cell) {
36950
- const decorations = [];
36951
- const $cell = state2.doc.resolve(cell);
36952
- const table = $cell.node(-1);
36953
- if (!table) {
36954
- return DecorationSet.empty;
36955
- }
36956
- const map4 = TableMap.get(table);
36957
- const start2 = $cell.start(-1);
36958
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36959
- for (let row = 0; row < map4.height; row++) {
36960
- const index2 = col + row * map4.width;
36961
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36962
- const cellPos = map4.map[index2];
36963
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36964
- const dom = document.createElement("div");
36965
- dom.className = "column-resize-handle";
36966
- decorations.push(Decoration.widget(pos, dom));
36967
- }
36968
- }
36969
- return DecorationSet.create(state2.doc, decorations);
36970
- }
36971
- function selectedRect(state2) {
36972
- const sel = state2.selection;
36973
- const $pos = selectionCell(state2);
36974
- const table = $pos.node(-1);
36975
- const tableStart = $pos.start(-1);
36976
- const map4 = TableMap.get(table);
36977
- const rect = sel instanceof CellSelection ? map4.rectBetween(
36978
- sel.$anchorCell.pos - tableStart,
36979
- sel.$headCell.pos - tableStart
36980
- ) : map4.findCell($pos.pos - tableStart);
36981
- return { ...rect, tableStart, map: map4, table };
36982
- }
36983
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
36984
- let refColumn = col > 0 ? -1 : 0;
36985
- if (columnIsHeader(map4, table, col + refColumn)) {
36986
- refColumn = col == 0 || col == map4.width ? null : 0;
36987
- }
36988
- for (let row = 0; row < map4.height; row++) {
36989
- const index2 = row * map4.width + col;
36990
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36991
- const pos = map4.map[index2];
36992
- const cell = table.nodeAt(pos);
36993
- tr2.setNodeMarkup(
36994
- tr2.mapping.map(tableStart + pos),
36995
- null,
36996
- addColSpan(cell.attrs, col - map4.colCount(pos))
36997
- );
36998
- row += cell.attrs.rowspan - 1;
36999
- } else {
37000
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
37001
- const pos = map4.positionAt(row, col, table);
37002
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
37003
- }
37004
- }
37005
- return tr2;
37006
- }
37007
- function addColumnBefore(state2, dispatch) {
37008
- if (!isInTable(state2))
37009
- return false;
37010
- if (dispatch) {
37011
- const rect = selectedRect(state2);
37012
- dispatch(addColumn(state2.tr, rect, rect.left));
37013
- }
37014
- return true;
37015
- }
37016
- function addColumnAfter(state2, dispatch) {
37017
- if (!isInTable(state2))
37018
- return false;
37019
- if (dispatch) {
37020
- const rect = selectedRect(state2);
37021
- dispatch(addColumn(state2.tr, rect, rect.right));
37022
- }
37023
- return true;
37024
- }
37025
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
37026
- const mapStart = tr2.mapping.maps.length;
37027
- for (let row = 0; row < map4.height; ) {
37028
- const index2 = row * map4.width + col;
37029
- const pos = map4.map[index2];
37030
- const cell = table.nodeAt(pos);
37031
- const attrs = cell.attrs;
37032
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
37033
- tr2.setNodeMarkup(
37034
- tr2.mapping.slice(mapStart).map(tableStart + pos),
37035
- null,
37036
- removeColSpan(attrs, col - map4.colCount(pos))
37037
- );
37038
- } else {
37039
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
37040
- tr2.delete(start2, start2 + cell.nodeSize);
37041
- }
37042
- row += attrs.rowspan;
37043
- }
37044
- }
37045
- function deleteColumn(state2, dispatch) {
37046
- if (!isInTable(state2))
37047
- return false;
37048
- if (dispatch) {
37049
- const rect = selectedRect(state2);
37050
- const tr2 = state2.tr;
37051
- if (rect.left == 0 && rect.right == rect.map.width)
37052
- return false;
37053
- for (let i2 = rect.right - 1; ; i2--) {
37054
- removeColumn(tr2, rect, i2);
37055
- if (i2 == rect.left)
37056
- break;
37057
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37058
- if (!table) {
37059
- throw RangeError("No table found");
37060
- }
37061
- rect.table = table;
37062
- rect.map = TableMap.get(table);
37063
- }
37064
- dispatch(tr2);
37065
- }
37066
- return true;
37067
- }
37068
- function rowIsHeader(map4, table, row) {
37069
- var _a2;
37070
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
37071
- for (let col = 0; col < map4.width; col++)
37072
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37073
- return false;
37074
- return true;
37075
- }
37076
- function addRow(tr2, { map: map4, tableStart, table }, row) {
37077
- var _a2;
37078
- let rowPos = tableStart;
37079
- for (let i2 = 0; i2 < row; i2++)
37080
- rowPos += table.child(i2).nodeSize;
37081
- const cells = [];
37082
- let refRow = row > 0 ? -1 : 0;
37083
- if (rowIsHeader(map4, table, row + refRow))
37084
- refRow = row == 0 || row == map4.height ? null : 0;
37085
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37086
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37087
- const pos = map4.map[index2];
37088
- const attrs = table.nodeAt(pos).attrs;
37089
- tr2.setNodeMarkup(tableStart + pos, null, {
37090
- ...attrs,
37091
- rowspan: attrs.rowspan + 1
37092
- });
37093
- col += attrs.colspan - 1;
37094
- } else {
37095
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37096
- const node = type3 == null ? void 0 : type3.createAndFill();
37097
- if (node)
37098
- cells.push(node);
37099
- }
37100
- }
37101
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37102
- return tr2;
37103
- }
37104
- function addRowBefore(state2, dispatch) {
37105
- if (!isInTable(state2))
37106
- return false;
37107
- if (dispatch) {
37108
- const rect = selectedRect(state2);
37109
- dispatch(addRow(state2.tr, rect, rect.top));
37110
- }
37111
- return true;
37112
- }
37113
- function addRowAfter(state2, dispatch) {
37114
- if (!isInTable(state2))
37115
- return false;
37116
- if (dispatch) {
37117
- const rect = selectedRect(state2);
37118
- dispatch(addRow(state2.tr, rect, rect.bottom));
37119
- }
37120
- return true;
37121
- }
37122
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
37123
- let rowPos = 0;
37124
- for (let i2 = 0; i2 < row; i2++)
37125
- rowPos += table.child(i2).nodeSize;
37126
- const nextRow = rowPos + table.child(row).nodeSize;
37127
- const mapFrom = tr2.mapping.maps.length;
37128
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
37129
- const seen = /* @__PURE__ */ new Set();
37130
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37131
- const pos = map4.map[index2];
37132
- if (seen.has(pos))
37133
- continue;
37134
- seen.add(pos);
37135
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
37136
- const attrs = table.nodeAt(pos).attrs;
37137
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37138
- ...attrs,
37139
- rowspan: attrs.rowspan - 1
37140
- });
37141
- col += attrs.colspan - 1;
37142
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37143
- const cell = table.nodeAt(pos);
37144
- const attrs = cell.attrs;
37145
- const copy2 = cell.type.create(
37146
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37147
- cell.content
37148
- );
37149
- const newPos = map4.positionAt(row + 1, col, table);
37150
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37151
- col += attrs.colspan - 1;
37152
- }
37153
- }
37154
- }
37155
- function deleteRow(state2, dispatch) {
37156
- if (!isInTable(state2))
37157
- return false;
37158
- if (dispatch) {
37159
- const rect = selectedRect(state2), tr2 = state2.tr;
37160
- if (rect.top == 0 && rect.bottom == rect.map.height)
37161
- return false;
37162
- for (let i2 = rect.bottom - 1; ; i2--) {
37163
- removeRow(tr2, rect, i2);
37164
- if (i2 == rect.top)
37165
- break;
37166
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37167
- if (!table) {
37168
- throw RangeError("No table found");
37169
- }
37170
- rect.table = table;
37171
- rect.map = TableMap.get(rect.table);
37172
- }
37173
- dispatch(tr2);
37174
- }
37175
- return true;
37176
- }
37177
- function isEmpty(cell) {
37178
- const c2 = cell.content;
37179
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37180
- }
37181
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37182
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37183
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37184
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37185
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37186
- return true;
37187
- indexLeft += width;
37188
- indexRight += width;
37189
- }
37190
- for (let i2 = rect.left; i2 < rect.right; i2++) {
37191
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37192
- return true;
37193
- indexTop++;
37194
- indexBottom++;
37195
- }
37196
- return false;
37197
- }
37198
- function mergeCells(state2, dispatch) {
37199
- const sel = state2.selection;
37200
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37201
- return false;
37202
- const rect = selectedRect(state2), { map: map4 } = rect;
37203
- if (cellsOverlapRectangle(map4, rect))
37204
- return false;
37205
- if (dispatch) {
37206
- const tr2 = state2.tr;
37207
- const seen = {};
37208
- let content = Fragment.empty;
37209
- let mergedPos;
37210
- let mergedCell;
37211
- for (let row = rect.top; row < rect.bottom; row++) {
37212
- for (let col = rect.left; col < rect.right; col++) {
37213
- const cellPos = map4.map[row * map4.width + col];
37214
- const cell = rect.table.nodeAt(cellPos);
37215
- if (seen[cellPos] || !cell)
37216
- continue;
37217
- seen[cellPos] = true;
37218
- if (mergedPos == null) {
37219
- mergedPos = cellPos;
37220
- mergedCell = cell;
37221
- } else {
37222
- if (!isEmpty(cell))
37223
- content = content.append(cell.content);
37224
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37225
- tr2.delete(mapped, mapped + cell.nodeSize);
37226
- }
37227
- }
37228
- }
37229
- if (mergedPos == null || mergedCell == null) {
37230
- return true;
37231
- }
37232
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37233
- ...addColSpan(
37234
- mergedCell.attrs,
37235
- mergedCell.attrs.colspan,
37236
- rect.right - rect.left - mergedCell.attrs.colspan
37237
- ),
37238
- rowspan: rect.bottom - rect.top
37239
- });
37240
- if (content.size) {
37241
- const end2 = mergedPos + 1 + mergedCell.content.size;
37242
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37243
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37244
- }
37245
- tr2.setSelection(
37246
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37247
- );
37248
- dispatch(tr2);
37249
- }
37250
- return true;
37251
- }
37252
- function splitCell(state2, dispatch) {
37253
- const nodeTypes = tableNodeTypes(state2.schema);
37254
- return splitCellWithType(({ node }) => {
37255
- return nodeTypes[node.type.spec.tableRole];
37256
- })(state2, dispatch);
37257
- }
37258
- function splitCellWithType(getCellType) {
37259
- return (state2, dispatch) => {
37260
- var _a2;
37261
- const sel = state2.selection;
37262
- let cellNode;
37263
- let cellPos;
37264
- if (!(sel instanceof CellSelection)) {
37265
- cellNode = cellWrapping(sel.$from);
37266
- if (!cellNode)
37267
- return false;
37268
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37269
- } else {
37270
- if (sel.$anchorCell.pos != sel.$headCell.pos)
37271
- return false;
37272
- cellNode = sel.$anchorCell.nodeAfter;
37273
- cellPos = sel.$anchorCell.pos;
37274
- }
37275
- if (cellNode == null || cellPos == null) {
37276
- return false;
37277
- }
37278
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37279
- return false;
37280
- }
37281
- if (dispatch) {
37282
- let baseAttrs = cellNode.attrs;
37283
- const attrs = [];
37284
- const colwidth = baseAttrs.colwidth;
37285
- if (baseAttrs.rowspan > 1)
37286
- baseAttrs = { ...baseAttrs, rowspan: 1 };
37287
- if (baseAttrs.colspan > 1)
37288
- baseAttrs = { ...baseAttrs, colspan: 1 };
37289
- const rect = selectedRect(state2), tr2 = state2.tr;
37290
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37291
- attrs.push(
37292
- colwidth ? {
37293
- ...baseAttrs,
37294
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37295
- } : baseAttrs
37296
- );
37297
- let lastCell;
37298
- for (let row = rect.top; row < rect.bottom; row++) {
37299
- let pos = rect.map.positionAt(row, rect.left, rect.table);
37300
- if (row == rect.top)
37301
- pos += cellNode.nodeSize;
37302
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37303
- if (col == rect.left && row == rect.top)
37304
- continue;
37305
- tr2.insert(
37306
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37307
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37308
- );
37577
+ if (col == map4.width - 1) {
37578
+ return;
37309
37579
  }
37310
37580
  }
37311
- tr2.setNodeMarkup(
37312
- cellPos,
37313
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37314
- attrs[0]
37315
- );
37316
- if (sel instanceof CellSelection)
37317
- tr2.setSelection(
37318
- new CellSelection(
37319
- tr2.doc.resolve(sel.$anchorCell.pos),
37320
- lastCell ? tr2.doc.resolve(lastCell) : void 0
37321
- )
37322
- );
37323
- dispatch(tr2);
37581
+ updateHandle(view, cell);
37324
37582
  }
37325
- return true;
37326
- };
37583
+ }
37327
37584
  }
37328
- function setCellAttr(name, value) {
37329
- return function(state2, dispatch) {
37330
- if (!isInTable(state2))
37331
- return false;
37332
- const $cell = selectionCell(state2);
37333
- if ($cell.nodeAfter.attrs[name] === value)
37334
- return false;
37335
- if (dispatch) {
37336
- const tr2 = state2.tr;
37337
- if (state2.selection instanceof CellSelection)
37338
- state2.selection.forEachCell((node, pos) => {
37339
- if (node.attrs[name] !== value)
37340
- tr2.setNodeMarkup(pos, null, {
37341
- ...node.attrs,
37342
- [name]: value
37343
- });
37344
- });
37345
- else
37346
- tr2.setNodeMarkup($cell.pos, null, {
37347
- ...$cell.nodeAfter.attrs,
37348
- [name]: value
37349
- });
37350
- dispatch(tr2);
37351
- }
37352
- return true;
37353
- };
37585
+ function handleMouseLeave(view) {
37586
+ const pluginState = columnResizingPluginKey.getState(view.state);
37587
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37588
+ updateHandle(view, -1);
37354
37589
  }
37355
- function deprecated_toggleHeader(type3) {
37356
- return function(state2, dispatch) {
37357
- if (!isInTable(state2))
37358
- return false;
37359
- if (dispatch) {
37360
- const types = tableNodeTypes(state2.schema);
37361
- const rect = selectedRect(state2), tr2 = state2.tr;
37362
- const cells = rect.map.cellsInRect(
37363
- type3 == "column" ? {
37364
- left: rect.left,
37365
- top: 0,
37366
- right: rect.right,
37367
- bottom: rect.map.height
37368
- } : type3 == "row" ? {
37369
- left: 0,
37370
- top: rect.top,
37371
- right: rect.map.width,
37372
- bottom: rect.bottom
37373
- } : rect
37590
+ function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37591
+ var _a2;
37592
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37593
+ const pluginState = columnResizingPluginKey.getState(view.state);
37594
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37595
+ return false;
37596
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37597
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37598
+ view.dispatch(
37599
+ view.state.tr.setMeta(columnResizingPluginKey, {
37600
+ setDragging: { startX: event.clientX, startWidth: width }
37601
+ })
37602
+ );
37603
+ function finish(event2) {
37604
+ win.removeEventListener("mouseup", finish);
37605
+ win.removeEventListener("mousemove", move);
37606
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37607
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37608
+ updateColumnWidth(
37609
+ view,
37610
+ pluginState2.activeHandle,
37611
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37612
+ );
37613
+ view.dispatch(
37614
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37374
37615
  );
37375
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37376
- for (let i2 = 0; i2 < cells.length; i2++)
37377
- if (nodes[i2].type == types.header_cell)
37378
- tr2.setNodeMarkup(
37379
- rect.tableStart + cells[i2],
37380
- types.cell,
37381
- nodes[i2].attrs
37382
- );
37383
- if (tr2.steps.length == 0)
37384
- for (let i2 = 0; i2 < cells.length; i2++)
37385
- tr2.setNodeMarkup(
37386
- rect.tableStart + cells[i2],
37387
- types.header_cell,
37388
- nodes[i2].attrs
37389
- );
37390
- dispatch(tr2);
37391
- }
37392
- return true;
37393
- };
37394
- }
37395
- function isHeaderEnabledByType(type3, rect, types) {
37396
- const cellPositions = rect.map.cellsInRect({
37397
- left: 0,
37398
- top: 0,
37399
- right: type3 == "row" ? rect.map.width : 1,
37400
- bottom: type3 == "column" ? rect.map.height : 1
37401
- });
37402
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
37403
- const cell = rect.table.nodeAt(cellPositions[i2]);
37404
- if (cell && cell.type !== types.header_cell) {
37405
- return false;
37406
37616
  }
37407
37617
  }
37408
- return true;
37409
- }
37410
- function toggleHeader(type3, options) {
37411
- options = options || { useDeprecatedLogic: false };
37412
- if (options.useDeprecatedLogic)
37413
- return deprecated_toggleHeader(type3);
37414
- return function(state2, dispatch) {
37415
- if (!isInTable(state2))
37416
- return false;
37417
- if (dispatch) {
37418
- const types = tableNodeTypes(state2.schema);
37419
- const rect = selectedRect(state2), tr2 = state2.tr;
37420
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37421
- const isHeaderColumnEnabled = isHeaderEnabledByType(
37422
- "column",
37423
- rect,
37424
- types
37618
+ function move(event2) {
37619
+ if (!event2.which)
37620
+ return finish(event2);
37621
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37622
+ if (!pluginState2)
37623
+ return;
37624
+ if (pluginState2.dragging) {
37625
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37626
+ displayColumnWidth(
37627
+ view,
37628
+ pluginState2.activeHandle,
37629
+ dragged,
37630
+ defaultCellMinWidth
37425
37631
  );
37426
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37427
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37428
- const cellsRect = type3 == "column" ? {
37429
- left: 0,
37430
- top: selectionStartsAt,
37431
- right: 1,
37432
- bottom: rect.map.height
37433
- } : type3 == "row" ? {
37434
- left: selectionStartsAt,
37435
- top: 0,
37436
- right: rect.map.width,
37437
- bottom: 1
37438
- } : rect;
37439
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37440
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37441
- const cellPos = relativeCellPos + rect.tableStart;
37442
- const cell = tr2.doc.nodeAt(cellPos);
37443
- if (cell) {
37444
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37445
- }
37446
- });
37447
- dispatch(tr2);
37448
37632
  }
37449
- return true;
37450
- };
37633
+ }
37634
+ displayColumnWidth(
37635
+ view,
37636
+ pluginState.activeHandle,
37637
+ width,
37638
+ defaultCellMinWidth
37639
+ );
37640
+ win.addEventListener("mouseup", finish);
37641
+ win.addEventListener("mousemove", move);
37642
+ event.preventDefault();
37643
+ return true;
37451
37644
  }
37452
- toggleHeader("row", {
37453
- useDeprecatedLogic: true
37454
- });
37455
- toggleHeader("column", {
37456
- useDeprecatedLogic: true
37457
- });
37458
- var toggleHeaderCell = toggleHeader("cell", {
37459
- useDeprecatedLogic: true
37460
- });
37461
- function findNextCell($cell, dir) {
37462
- if (dir < 0) {
37463
- const before = $cell.nodeBefore;
37464
- if (before)
37465
- return $cell.pos - before.nodeSize;
37466
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37467
- const rowNode = $cell.node(-1).child(row);
37468
- const lastChild2 = rowNode.lastChild;
37469
- if (lastChild2) {
37470
- return rowEnd - 1 - lastChild2.nodeSize;
37645
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
37646
+ const width = colwidth && colwidth[colwidth.length - 1];
37647
+ if (width)
37648
+ return width;
37649
+ const dom = view.domAtPos(cellPos);
37650
+ const node = dom.node.childNodes[dom.offset];
37651
+ let domWidth = node.offsetWidth, parts = colspan;
37652
+ if (colwidth) {
37653
+ for (let i2 = 0; i2 < colspan; i2++)
37654
+ if (colwidth[i2]) {
37655
+ domWidth -= colwidth[i2];
37656
+ parts--;
37471
37657
  }
37472
- rowEnd -= rowNode.nodeSize;
37473
- }
37474
- } else {
37475
- if ($cell.index() < $cell.parent.childCount - 1) {
37476
- return $cell.pos + $cell.nodeAfter.nodeSize;
37477
- }
37478
- const table = $cell.node(-1);
37479
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37480
- const rowNode = table.child(row);
37481
- if (rowNode.childCount)
37482
- return rowStart + 1;
37483
- rowStart += rowNode.nodeSize;
37484
- }
37485
37658
  }
37486
- return null;
37659
+ return domWidth / parts;
37487
37660
  }
37488
- function goToNextCell(direction) {
37489
- return function(state2, dispatch) {
37490
- if (!isInTable(state2))
37491
- return false;
37492
- const cell = findNextCell(selectionCell(state2), direction);
37493
- if (cell == null)
37494
- return false;
37495
- if (dispatch) {
37496
- const $cell = state2.doc.resolve(cell);
37497
- dispatch(
37498
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37499
- );
37500
- }
37501
- return true;
37502
- };
37661
+ function domCellAround(target) {
37662
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
37663
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37664
+ return target;
37503
37665
  }
37504
- function deleteTable(state2, dispatch) {
37505
- const $pos = state2.selection.$anchor;
37506
- for (let d2 = $pos.depth; d2 > 0; d2--) {
37507
- const node = $pos.node(d2);
37508
- if (node.type.spec.tableRole == "table") {
37509
- if (dispatch)
37510
- dispatch(
37511
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37666
+ function edgeCell(view, event, side, handleWidth) {
37667
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
37668
+ const found2 = view.posAtCoords({
37669
+ left: event.clientX + offset2,
37670
+ top: event.clientY
37671
+ });
37672
+ if (!found2)
37673
+ return -1;
37674
+ const { pos } = found2;
37675
+ const $cell = cellAround(view.state.doc.resolve(pos));
37676
+ if (!$cell)
37677
+ return -1;
37678
+ if (side == "right")
37679
+ return $cell.pos;
37680
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37681
+ const index2 = map4.map.indexOf($cell.pos - start2);
37682
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37683
+ }
37684
+ function draggedWidth(dragging, event, resizeMinWidth) {
37685
+ const offset2 = event.clientX - dragging.startX;
37686
+ return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37687
+ }
37688
+ function updateHandle(view, value) {
37689
+ view.dispatch(
37690
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37691
+ );
37692
+ }
37693
+ function updateColumnWidth(view, cell, width) {
37694
+ const $cell = view.state.doc.resolve(cell);
37695
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37696
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37697
+ const tr2 = view.state.tr;
37698
+ for (let row = 0; row < map4.height; row++) {
37699
+ const mapIndex = row * map4.width + col;
37700
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37701
+ continue;
37702
+ const pos = map4.map[mapIndex];
37703
+ const attrs = table.nodeAt(pos).attrs;
37704
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37705
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
37706
+ continue;
37707
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37708
+ colwidth[index2] = width;
37709
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37710
+ }
37711
+ if (tr2.docChanged)
37712
+ view.dispatch(tr2);
37713
+ }
37714
+ function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37715
+ const $cell = view.state.doc.resolve(cell);
37716
+ const table = $cell.node(-1), start2 = $cell.start(-1);
37717
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37718
+ let dom = view.domAtPos($cell.start(-1)).node;
37719
+ while (dom && dom.nodeName != "TABLE") {
37720
+ dom = dom.parentNode;
37721
+ }
37722
+ if (!dom)
37723
+ return;
37724
+ updateColumnsOnResize(
37725
+ table,
37726
+ dom.firstChild,
37727
+ dom,
37728
+ defaultCellMinWidth,
37729
+ col,
37730
+ width
37731
+ );
37732
+ }
37733
+ function zeroes(n2) {
37734
+ return Array(n2).fill(0);
37735
+ }
37736
+ function handleDecorations(state2, cell) {
37737
+ var _a2;
37738
+ const decorations = [];
37739
+ const $cell = state2.doc.resolve(cell);
37740
+ const table = $cell.node(-1);
37741
+ if (!table) {
37742
+ return DecorationSet.empty;
37743
+ }
37744
+ const map4 = TableMap.get(table);
37745
+ const start2 = $cell.start(-1);
37746
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37747
+ for (let row = 0; row < map4.height; row++) {
37748
+ const index2 = col + row * map4.width;
37749
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37750
+ const cellPos = map4.map[index2];
37751
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37752
+ const dom = document.createElement("div");
37753
+ dom.className = "column-resize-handle";
37754
+ if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37755
+ decorations.push(
37756
+ Decoration.node(
37757
+ start2 + cellPos,
37758
+ start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37759
+ {
37760
+ class: "column-resize-dragging"
37761
+ }
37762
+ )
37512
37763
  );
37513
- return true;
37764
+ }
37765
+ decorations.push(Decoration.widget(pos, dom));
37514
37766
  }
37515
37767
  }
37516
- return false;
37768
+ return DecorationSet.create(state2.doc, decorations);
37517
37769
  }
37518
37770
  function tableEditing({
37519
37771
  allowTableNodeSelection = false
@@ -37558,33 +37810,46 @@ function tableEditing({
37558
37810
  }
37559
37811
  });
37560
37812
  }
37813
+ function getColStyleDeclaration(minWidth, width) {
37814
+ if (width) {
37815
+ return ["width", `${Math.max(width, minWidth)}px`];
37816
+ }
37817
+ return ["min-width", `${minWidth}px`];
37818
+ }
37561
37819
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37820
+ var _a2;
37562
37821
  let totalWidth = 0;
37563
37822
  let fixedWidth = true;
37564
37823
  let nextDOM = colgroup.firstChild;
37565
37824
  const row = node.firstChild;
37566
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37567
- const { colspan, colwidth } = row.child(i2).attrs;
37568
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37569
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37570
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37571
- totalWidth += hasWidth || cellMinWidth;
37572
- if (!hasWidth) {
37573
- fixedWidth = false;
37574
- }
37575
- if (!nextDOM) {
37576
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37577
- } else {
37578
- if (nextDOM.style.width !== cssWidth) {
37579
- nextDOM.style.width = cssWidth;
37825
+ if (row !== null) {
37826
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37827
+ const { colspan, colwidth } = row.child(i2).attrs;
37828
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37829
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37830
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37831
+ totalWidth += hasWidth || cellMinWidth;
37832
+ if (!hasWidth) {
37833
+ fixedWidth = false;
37834
+ }
37835
+ if (!nextDOM) {
37836
+ const colElement = document.createElement("col");
37837
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37838
+ colElement.style.setProperty(propertyKey, propertyValue);
37839
+ colgroup.appendChild(colElement);
37840
+ } else {
37841
+ if (nextDOM.style.width !== cssWidth) {
37842
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37843
+ nextDOM.style.setProperty(propertyKey, propertyValue);
37844
+ }
37845
+ nextDOM = nextDOM.nextSibling;
37580
37846
  }
37581
- nextDOM = nextDOM.nextSibling;
37582
37847
  }
37583
37848
  }
37584
37849
  }
37585
37850
  while (nextDOM) {
37586
37851
  const after = nextDOM.nextSibling;
37587
- nextDOM.parentNode.removeChild(nextDOM);
37852
+ (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37588
37853
  nextDOM = after;
37589
37854
  }
37590
37855
  if (fixedWidth) {
@@ -37630,12 +37895,15 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37630
37895
  const { colspan, colwidth } = row.child(i2).attrs;
37631
37896
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37632
37897
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37633
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37634
37898
  totalWidth += hasWidth || cellMinWidth;
37635
37899
  if (!hasWidth) {
37636
37900
  fixedWidth = false;
37637
37901
  }
37638
- cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37902
+ const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37903
+ cols.push([
37904
+ "col",
37905
+ { style: `${property}: ${value}` }
37906
+ ]);
37639
37907
  }
37640
37908
  }
37641
37909
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -37844,6 +38112,7 @@ const Table = Node$1.create({
37844
38112
  columnResizing({
37845
38113
  handleWidth: this.options.handleWidth,
37846
38114
  cellMinWidth: this.options.cellMinWidth,
38115
+ defaultCellMinWidth: this.options.cellMinWidth,
37847
38116
  View: this.options.View,
37848
38117
  lastColumnResizable: this.options.lastColumnResizable
37849
38118
  })
@@ -37884,7 +38153,7 @@ const TableCell = Node$1.create({
37884
38153
  default: null,
37885
38154
  parseHTML: (element) => {
37886
38155
  const colwidth = element.getAttribute("colwidth");
37887
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38156
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37888
38157
  return value;
37889
38158
  }
37890
38159
  }
@@ -37921,7 +38190,7 @@ const TableHeader = Node$1.create({
37921
38190
  default: null,
37922
38191
  parseHTML: (element) => {
37923
38192
  const colwidth = element.getAttribute("colwidth");
37924
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38193
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37925
38194
  return value;
37926
38195
  }
37927
38196
  }
@@ -38238,6 +38507,10 @@ const Bold = Mark.create({
38238
38507
  tag: "b",
38239
38508
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38240
38509
  },
38510
+ {
38511
+ style: "font-weight=400",
38512
+ clearMark: (mark) => mark.type.name === this.name
38513
+ },
38241
38514
  {
38242
38515
  style: "font-weight",
38243
38516
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38291,73 +38564,8 @@ const Bold = Mark.create({
38291
38564
  ];
38292
38565
  }
38293
38566
  });
38294
- const ListItem$2 = Node$1.create({
38295
- name: "listItem",
38296
- addOptions() {
38297
- return {
38298
- HTMLAttributes: {},
38299
- bulletListTypeName: "bulletList",
38300
- orderedListTypeName: "orderedList"
38301
- };
38302
- },
38303
- content: "paragraph block*",
38304
- defining: true,
38305
- parseHTML() {
38306
- return [
38307
- {
38308
- tag: "li"
38309
- }
38310
- ];
38311
- },
38312
- renderHTML({ HTMLAttributes }) {
38313
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38314
- },
38315
- addKeyboardShortcuts() {
38316
- return {
38317
- Enter: () => this.editor.commands.splitListItem(this.name),
38318
- Tab: () => this.editor.commands.sinkListItem(this.name),
38319
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38320
- };
38321
- }
38322
- });
38323
- const TextStyle$1 = Mark.create({
38324
- name: "textStyle",
38325
- priority: 101,
38326
- addOptions() {
38327
- return {
38328
- HTMLAttributes: {}
38329
- };
38330
- },
38331
- parseHTML() {
38332
- return [
38333
- {
38334
- tag: "span",
38335
- getAttrs: (element) => {
38336
- const hasStyles = element.hasAttribute("style");
38337
- if (!hasStyles) {
38338
- return false;
38339
- }
38340
- return {};
38341
- }
38342
- }
38343
- ];
38344
- },
38345
- renderHTML({ HTMLAttributes }) {
38346
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38347
- },
38348
- addCommands() {
38349
- return {
38350
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38351
- const attributes = getMarkAttributes(state2, this.type);
38352
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38353
- if (hasStyles) {
38354
- return true;
38355
- }
38356
- return commands2.unsetMark(this.name);
38357
- }
38358
- };
38359
- }
38360
- });
38567
+ const ListItemName$1 = "listItem";
38568
+ const TextStyleName$1 = "textStyle";
38361
38569
  const inputRegex$3 = /^\s*([-+*])\s$/;
38362
38570
  const BulletList = Node$1.create({
38363
38571
  name: "bulletList",
@@ -38385,7 +38593,7 @@ const BulletList = Node$1.create({
38385
38593
  return {
38386
38594
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38387
38595
  if (this.options.keepAttributes) {
38388
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38596
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38389
38597
  }
38390
38598
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38391
38599
  }
@@ -38408,7 +38616,7 @@ const BulletList = Node$1.create({
38408
38616
  keepMarks: this.options.keepMarks,
38409
38617
  keepAttributes: this.options.keepAttributes,
38410
38618
  getAttributes: () => {
38411
- return this.editor.getAttributes(TextStyle$1.name);
38619
+ return this.editor.getAttributes(TextStyleName$1);
38412
38620
  },
38413
38621
  editor: this.editor
38414
38622
  });
@@ -38418,8 +38626,8 @@ const BulletList = Node$1.create({
38418
38626
  ];
38419
38627
  }
38420
38628
  });
38421
- const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38422
- const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38629
+ const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38630
+ const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38423
38631
  const Code = Mark.create({
38424
38632
  name: "code",
38425
38633
  addOptions() {
@@ -39046,6 +39254,7 @@ const HardBreak = Node$1.create({
39046
39254
  inline: true,
39047
39255
  group: "inline",
39048
39256
  selectable: false,
39257
+ linebreakReplacement: true,
39049
39258
  parseHTML() {
39050
39259
  return [
39051
39260
  { tag: "br" }
@@ -39807,6 +40016,10 @@ const Italic = Mark.create({
39807
40016
  tag: "i",
39808
40017
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39809
40018
  },
40019
+ {
40020
+ style: "font-style=normal",
40021
+ clearMark: (mark) => mark.type.name === this.name
40022
+ },
39810
40023
  {
39811
40024
  style: "font-style=italic"
39812
40025
  }
@@ -39859,35 +40072,6 @@ const Italic = Mark.create({
39859
40072
  ];
39860
40073
  }
39861
40074
  });
39862
- const ListItem$1 = Node$1.create({
39863
- name: "listItem",
39864
- addOptions() {
39865
- return {
39866
- HTMLAttributes: {},
39867
- bulletListTypeName: "bulletList",
39868
- orderedListTypeName: "orderedList"
39869
- };
39870
- },
39871
- content: "paragraph block*",
39872
- defining: true,
39873
- parseHTML() {
39874
- return [
39875
- {
39876
- tag: "li"
39877
- }
39878
- ];
39879
- },
39880
- renderHTML({ HTMLAttributes }) {
39881
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39882
- },
39883
- addKeyboardShortcuts() {
39884
- return {
39885
- Enter: () => this.editor.commands.splitListItem(this.name),
39886
- Tab: () => this.editor.commands.sinkListItem(this.name),
39887
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39888
- };
39889
- }
39890
- });
39891
40075
  const ListItem = Node$1.create({
39892
40076
  name: "listItem",
39893
40077
  addOptions() {
@@ -39917,44 +40101,8 @@ const ListItem = Node$1.create({
39917
40101
  };
39918
40102
  }
39919
40103
  });
39920
- const TextStyle = Mark.create({
39921
- name: "textStyle",
39922
- priority: 101,
39923
- addOptions() {
39924
- return {
39925
- HTMLAttributes: {}
39926
- };
39927
- },
39928
- parseHTML() {
39929
- return [
39930
- {
39931
- tag: "span",
39932
- getAttrs: (element) => {
39933
- const hasStyles = element.hasAttribute("style");
39934
- if (!hasStyles) {
39935
- return false;
39936
- }
39937
- return {};
39938
- }
39939
- }
39940
- ];
39941
- },
39942
- renderHTML({ HTMLAttributes }) {
39943
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39944
- },
39945
- addCommands() {
39946
- return {
39947
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39948
- const attributes = getMarkAttributes(state2, this.type);
39949
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39950
- if (hasStyles) {
39951
- return true;
39952
- }
39953
- return commands2.unsetMark(this.name);
39954
- }
39955
- };
39956
- }
39957
- });
40104
+ const ListItemName = "listItem";
40105
+ const TextStyleName = "textStyle";
39958
40106
  const inputRegex$1 = /^(\d+)\.\s$/;
39959
40107
  const OrderedList = Node$1.create({
39960
40108
  name: "orderedList",
@@ -39999,7 +40147,7 @@ const OrderedList = Node$1.create({
39999
40147
  return {
40000
40148
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
40001
40149
  if (this.options.keepAttributes) {
40002
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40150
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
40003
40151
  }
40004
40152
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
40005
40153
  }
@@ -40023,7 +40171,7 @@ const OrderedList = Node$1.create({
40023
40171
  type: this.type,
40024
40172
  keepMarks: this.options.keepMarks,
40025
40173
  keepAttributes: this.options.keepAttributes,
40026
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40174
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
40027
40175
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
40028
40176
  editor: this.editor
40029
40177
  });
@@ -40178,7 +40326,7 @@ const StarterKit = Extension.create({
40178
40326
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40179
40327
  }
40180
40328
  if (this.options.listItem !== false) {
40181
- extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40329
+ extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40182
40330
  }
40183
40331
  if (this.options.orderedList !== false) {
40184
40332
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42853,6 +43001,9 @@ class BubbleMenuView {
42853
43001
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42854
43002
  return;
42855
43003
  }
43004
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43005
+ return;
43006
+ }
42856
43007
  this.hide();
42857
43008
  };
42858
43009
  this.tippyBlurHandler = (event) => {
@@ -42885,6 +43036,7 @@ class BubbleMenuView {
42885
43036
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42886
43037
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42887
43038
  editor: this.editor,
43039
+ element: this.element,
42888
43040
  view: view2,
42889
43041
  state: state2,
42890
43042
  oldState,
@@ -42899,12 +43051,14 @@ class BubbleMenuView {
42899
43051
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42900
43052
  if (isNodeSelection(state2.selection)) {
42901
43053
  let node = view2.nodeDOM(from2);
42902
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42903
- if (nodeViewWrapper) {
42904
- node = nodeViewWrapper.firstChild;
42905
- }
42906
43054
  if (node) {
42907
- return node.getBoundingClientRect();
43055
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
43056
+ if (nodeViewWrapper) {
43057
+ node = nodeViewWrapper.firstChild;
43058
+ }
43059
+ if (node) {
43060
+ return node.getBoundingClientRect();
43061
+ }
42908
43062
  }
42909
43063
  }
42910
43064
  return posToDOMRect(view2, from2, to2);
@@ -43039,6 +43193,9 @@ class FloatingMenuView {
43039
43193
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
43040
43194
  return;
43041
43195
  }
43196
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43197
+ return;
43198
+ }
43042
43199
  this.hide();
43043
43200
  };
43044
43201
  this.tippyBlurHandler = (event) => {
@@ -43299,21 +43456,8 @@ const EditorContent = defineComponent({
43299
43456
  if (!editor) {
43300
43457
  return;
43301
43458
  }
43302
- if (!editor.isDestroyed) {
43303
- editor.view.setProps({
43304
- nodeViews: {}
43305
- });
43306
- }
43307
43459
  editor.contentComponent = null;
43308
43460
  editor.appContext = null;
43309
- if (!editor.options.element.firstChild) {
43310
- return;
43311
- }
43312
- const newElement = document.createElement("div");
43313
- newElement.append(...editor.options.element.childNodes);
43314
- editor.setOptions({
43315
- element: newElement
43316
- });
43317
43461
  });
43318
43462
  return { rootEl: rootEl2 };
43319
43463
  },
@@ -44441,7 +44585,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44441
44585
  });
44442
44586
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44443
44587
  /*!
44444
- * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44588
+ * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44445
44589
  * (c) 2024 Szymon Nowak | Released under the MIT license
44446
44590
  */
44447
44591
  class Point {
@@ -44525,7 +44669,7 @@ class SignatureEventTarget {
44525
44669
  constructor() {
44526
44670
  try {
44527
44671
  this._et = new EventTarget();
44528
- } catch (error) {
44672
+ } catch (_a2) {
44529
44673
  this._et = document;
44530
44674
  }
44531
44675
  }
@@ -44639,13 +44783,16 @@ class SignaturePad extends SignatureEventTarget {
44639
44783
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44640
44784
  };
44641
44785
  this._handlePointerDown = (event) => {
44642
- if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44786
+ if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44643
44787
  return;
44644
44788
  }
44645
44789
  event.preventDefault();
44646
44790
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44647
44791
  };
44648
44792
  this._handlePointerMove = (event) => {
44793
+ if (!event.isPrimary) {
44794
+ return;
44795
+ }
44649
44796
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44650
44797
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44651
44798
  return;
@@ -44654,7 +44801,7 @@ class SignaturePad extends SignatureEventTarget {
44654
44801
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44655
44802
  };
44656
44803
  this._handlePointerUp = (event) => {
44657
- if (this._isLeftButtonPressed(event)) {
44804
+ if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44658
44805
  return;
44659
44806
  }
44660
44807
  event.preventDefault();
@@ -48432,6 +48579,11 @@ function buildURL(url, params, options) {
48432
48579
  return url;
48433
48580
  }
48434
48581
  const _encode = options && options.encode || encode;
48582
+ if (utils$1.isFunction(options)) {
48583
+ options = {
48584
+ serialize: options
48585
+ };
48586
+ }
48435
48587
  const serializeFn = options && options.serialize;
48436
48588
  let serializedParams;
48437
48589
  if (serializeFn) {
@@ -48618,7 +48770,7 @@ function stringifySafely(rawValue, parser, encoder) {
48618
48770
  }
48619
48771
  }
48620
48772
  }
48621
- return (encoder || JSON.stringify)(rawValue);
48773
+ return (0, JSON.stringify)(rawValue);
48622
48774
  }
48623
48775
  const defaults = {
48624
48776
  transitional: transitionalDefaults,
@@ -49111,45 +49263,13 @@ const progressEventDecorator = (total, throttled) => {
49111
49263
  }), throttled[1]];
49112
49264
  };
49113
49265
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49114
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49115
- // Standard browser envs have full support of the APIs needed to test
49116
- // whether the request URL is of the same origin as current location.
49117
- function standardBrowserEnv() {
49118
- const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49119
- const urlParsingNode = document.createElement("a");
49120
- let originURL;
49121
- function resolveURL(url) {
49122
- let href = url;
49123
- if (msie) {
49124
- urlParsingNode.setAttribute("href", href);
49125
- href = urlParsingNode.href;
49126
- }
49127
- urlParsingNode.setAttribute("href", href);
49128
- return {
49129
- href: urlParsingNode.href,
49130
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49131
- host: urlParsingNode.host,
49132
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49133
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49134
- hostname: urlParsingNode.hostname,
49135
- port: urlParsingNode.port,
49136
- pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49137
- };
49138
- }
49139
- originURL = resolveURL(window.location.href);
49140
- return function isURLSameOrigin2(requestURL) {
49141
- const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49142
- return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49143
- };
49144
- }()
49145
- ) : (
49146
- // Non standard browser envs (web workers, react-native) lack needed support.
49147
- /* @__PURE__ */ function nonStandardBrowserEnv() {
49148
- return function isURLSameOrigin2() {
49149
- return true;
49150
- };
49151
- }()
49152
- );
49266
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49267
+ url = new URL(url, platform.origin);
49268
+ return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49269
+ })(
49270
+ new URL(platform.origin),
49271
+ platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49272
+ ) : () => true;
49153
49273
  const cookies = platform.hasStandardBrowserEnv ? (
49154
49274
  // Standard browser envs support document.cookie
49155
49275
  {
@@ -49197,7 +49317,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49197
49317
  function mergeConfig(config1, config2) {
49198
49318
  config2 = config2 || {};
49199
49319
  const config = {};
49200
- function getMergedValue(target, source, caseless) {
49320
+ function getMergedValue(target, source, prop3, caseless) {
49201
49321
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49202
49322
  return utils$1.merge.call({ caseless }, target, source);
49203
49323
  } else if (utils$1.isPlainObject(source)) {
@@ -49207,11 +49327,11 @@ function mergeConfig(config1, config2) {
49207
49327
  }
49208
49328
  return source;
49209
49329
  }
49210
- function mergeDeepProperties(a2, b2, caseless) {
49330
+ function mergeDeepProperties(a2, b2, prop3, caseless) {
49211
49331
  if (!utils$1.isUndefined(b2)) {
49212
- return getMergedValue(a2, b2, caseless);
49332
+ return getMergedValue(a2, b2, prop3, caseless);
49213
49333
  } else if (!utils$1.isUndefined(a2)) {
49214
- return getMergedValue(void 0, a2, caseless);
49334
+ return getMergedValue(void 0, a2, prop3, caseless);
49215
49335
  }
49216
49336
  }
49217
49337
  function valueFromConfig2(a2, b2) {
@@ -49262,7 +49382,7 @@ function mergeConfig(config1, config2) {
49262
49382
  socketPath: defaultToConfig2,
49263
49383
  responseEncoding: defaultToConfig2,
49264
49384
  validateStatus: mergeDirectKeys,
49265
- headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49385
+ headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49266
49386
  };
49267
49387
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49268
49388
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49462,7 +49582,7 @@ const composeSignals = (signals, timeout) => {
49462
49582
  };
49463
49583
  const streamChunk = function* (chunk, chunkSize) {
49464
49584
  let len = chunk.byteLength;
49465
- if (!chunkSize || len < chunkSize) {
49585
+ if (len < chunkSize) {
49466
49586
  yield chunk;
49467
49587
  return;
49468
49588
  }
@@ -49792,7 +49912,7 @@ function dispatchRequest(config) {
49792
49912
  return Promise.reject(reason);
49793
49913
  });
49794
49914
  }
49795
- const VERSION = "1.7.7";
49915
+ const VERSION = "1.7.9";
49796
49916
  const validators$1 = {};
49797
49917
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49798
49918
  validators$1[type3] = function validator2(thing) {
@@ -49823,6 +49943,12 @@ validators$1.transitional = function transitional(validator2, version2, message2
49823
49943
  return validator2 ? validator2(value, opt, opts) : true;
49824
49944
  };
49825
49945
  };
49946
+ validators$1.spelling = function spelling(correctSpelling) {
49947
+ return (value, opt) => {
49948
+ console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49949
+ return true;
49950
+ };
49951
+ };
49826
49952
  function assertOptions(options, schema, allowUnknown) {
49827
49953
  if (typeof options !== "object") {
49828
49954
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49871,8 +49997,8 @@ class Axios {
49871
49997
  return await this._request(configOrUrl, config);
49872
49998
  } catch (err) {
49873
49999
  if (err instanceof Error) {
49874
- let dummy;
49875
- Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
50000
+ let dummy = {};
50001
+ Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49876
50002
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49877
50003
  try {
49878
50004
  if (!err.stack) {
@@ -49914,6 +50040,10 @@ class Axios {
49914
50040
  }, true);
49915
50041
  }
49916
50042
  }
50043
+ validator.assertOptions(config, {
50044
+ baseUrl: validators.spelling("baseURL"),
50045
+ withXsrfToken: validators.spelling("withXSRFToken")
50046
+ }, true);
49917
50047
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49918
50048
  let contextHeaders = headers && utils$1.merge(
49919
50049
  headers.common,
@@ -50210,7 +50340,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50210
50340
  axios$1.getAdapter = adapters.getAdapter;
50211
50341
  axios$1.HttpStatusCode = HttpStatusCode;
50212
50342
  axios$1.default = axios$1;
50213
- const metadata = { "version": 4, "country_calling_codes": { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, "countries": { "AC": ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]], "AD": ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]]], "AE": ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "AL": ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0"], "AM": ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "AT": ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "AX": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", 0, "00"], "AZ": ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "BA": ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "BE": ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0"], "BF": ["226", "00", "[025-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "[24-689]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]]]], "BL": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]]], "BY": ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, 0, "8~10"], "BZ": ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]], "CA": ["1", "011", "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "60\\d{8}|(?:1\\d|[39])\\d{9}", [10, 11], [["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|91"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "CR": ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "CW": ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|31)"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "DZ": ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0"], "EC": ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0"], "EE": ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "EG": ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "FI": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:1[49]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "00"], "FJ": ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "FR": ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0"], "GA": ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "GB": ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "GE": ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0"], "GF": ["594", "00", "[56]94\\d{6}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[56]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], "GH": ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "GN": ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]], "GP": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "GQ": ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "GW": ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", [6, 7, 8, 9], [["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "(?:[2-489]\\d|55)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0"], "IE": ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "IL": ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0", "1624$1", 0, "74576|(?:16|7[56])24"], "IN": ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "IQ": ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "IR": ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0"], "IS": ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "IT": ["39", "00", "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", [6, 7, 8, 9, 10, 11]], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], "JE": ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"]], "0", 0, "(000[259]\\d{6})$|(?:(?:003768)0?)|0", "$1"], "KE": ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "KH": ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "KR": ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[0135-9]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "LK": ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"], "LR": ["231", "00", "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "LU": ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"], "LV": ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], ["(\\d{4})(\\d{5})", "$1-$2", ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"]], "0"], "MD": ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0"], "ME": ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0"], "MF": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "MM": ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0"], "MN": ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "596\\d{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "MR": ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "020"], "MV": ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"]], "0"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MY": ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "NA": ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]]], "NF": ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1"], "NG": ["234", "009", "38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}", [8, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["3"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "PG": ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0"], "PK": ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|80\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "PS": ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "PT": ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[16]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, " int "], "RS": ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "3[04-689]|[489]", 0, "8~10"], "RW": ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "SE": ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0"], "SG": ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "SI": ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "SK": ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"]], "0"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "SM": ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]], "SO": ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|77|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-39]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", 1]], "0"], "SZ": ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "[0-57-9]\\d{8}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "TL": ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "TV": ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "TW": ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "UA": ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "0~0"], "UG": ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", [6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-79]\\d|88)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "VA": ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "VE": ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "VN": ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1], ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[478]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "WS": ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "YE": ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"], "ZW": ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[35-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
50343
+ const metadata = { "version": 4, "country_calling_codes": { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, "countries": { "AC": ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]], "AD": ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]]], "AE": ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "AL": ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0"], "AM": ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "AT": ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "AX": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", 0, "00"], "AZ": ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "BA": ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "BE": ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0"], "BF": ["226", "00", "[025-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "(?:01\\d|[24-689])\\d{7}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["0"]]]], "BL": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]]], "BY": ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, 0, "8~10"], "BZ": ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]], "CA": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["46"]], ["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|91"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "CR": ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "CW": ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|31)"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "DZ": ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0"], "EC": ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0"], "EE": ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "EG": ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "FI": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "00"], "FJ": ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "FR": ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0"], "GA": ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "GB": ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "GE": ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0"], "GF": ["594", "00", "(?:[56]94\\d|7093)\\d{5}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], "GH": ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "GN": ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]], "GP": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "GQ": ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "GW": ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", [6, 7, 8, 9], [["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "(?:[2-489]\\d|55)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0"], "IE": ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "IL": ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0", "1624$1", 0, "74576|(?:16|7[56])24"], "IN": ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "IQ": ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "IR": ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0"], "IS": ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "IT": ["39", "00", "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", [6, 7, 8, 9, 10, 11]], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], "JE": ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"]], "0", 0, "(000[259]\\d{6})$|(?:(?:003768)0?)|0", "$1"], "KE": ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "KH": ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "KR": ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[0135-9]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "LK": ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"], "LR": ["231", "00", "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "LU": ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"], "LV": ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], ["(\\d{4})(\\d{5})", "$1-$2", ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"]], "0"], "MD": ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0"], "ME": ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0"], "MF": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "MM": ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|452|678|86", "[12]|452|6788|86"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0"], "MN": ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]|8(?:0[6-9]|[36])"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "MR": ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "020"], "MV": ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"]], "0"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MY": ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "NA": ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]]], "NF": ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1"], "NG": ["234", "009", "38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}", [8, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["3"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "PG": ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0"], "PK": ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|8\\d\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "PS": ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "PT": ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[16]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "709\\d{6}|(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["(?:69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, " int "], "RS": ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "3[04-689]|[489]", 0, "8~10"], "RW": ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "SE": ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0"], "SG": ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "SI": ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "SK": ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"]], "0"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "SM": ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]], "SO": ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|77|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-359]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-4]|5[1-3]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[59]"], "0$1", 1]], "0"], "SZ": ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "[0-57-9]\\d{8}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "TL": ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "TV": ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "TW": ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "UA": ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "0~0"], "UG": ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", [6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-79]\\d|88)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "VA": ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "VE": ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "VN": ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1], ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[47-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "WS": ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "YE": ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"], "ZW": ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[235-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"], 0, 0, 0, 0, 0, 0, ["2\\d{8}", [9]]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
50214
50344
  function withMetadataArgument(func, _arguments) {
50215
50345
  var args = Array.prototype.slice.call(_arguments);
50216
50346
  args.push(metadata);
@@ -51823,9 +51953,8 @@ function _arrayLikeToArray$1(arr, len) {
51823
51953
  return arr2;
51824
51954
  }
51825
51955
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51826
- var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51956
+ var countries = _ref.countries, metadata2 = _ref.metadata;
51827
51957
  metadata2 = new Metadata(metadata2);
51828
- var matchingCountries = [];
51829
51958
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51830
51959
  var country = _step.value;
51831
51960
  metadata2.country(country);
@@ -51837,19 +51966,9 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51837
51966
  phone: nationalPhoneNumber,
51838
51967
  country
51839
51968
  }, void 0, metadata2.metadata)) {
51840
- if (defaultCountry) {
51841
- if (country === defaultCountry) {
51842
- return country;
51843
- }
51844
- matchingCountries.push(country);
51845
- } else {
51846
- return country;
51847
- }
51969
+ return country;
51848
51970
  }
51849
51971
  }
51850
- if (matchingCountries.length > 0) {
51851
- return matchingCountries[0];
51852
- }
51853
51972
  }
51854
51973
  function getCountryByCallingCode(callingCode, _ref) {
51855
51974
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;