@bagelink/vue 0.0.941 → 0.0.943

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 (201) 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 +1670 -1569
  162. package/dist/index.mjs +1670 -1569
  163. package/dist/style.css +46 -46
  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 +5 -5
  169. package/src/components/TableSchema.vue +9 -2
  170. package/dist/components/AddressSaerch.vue.d.ts +0 -7
  171. package/dist/components/AddressSaerch.vue.d.ts.map +0 -1
  172. package/dist/components/Popover.vue.d.ts +0 -10
  173. package/dist/components/Popover.vue.d.ts.map +0 -1
  174. package/dist/components/sortable/Animation.d.ts +0 -43
  175. package/dist/components/sortable/Animation.d.ts.map +0 -1
  176. package/dist/components/sortable/BrowserInfo.d.ts +0 -7
  177. package/dist/components/sortable/BrowserInfo.d.ts.map +0 -1
  178. package/dist/components/sortable/EventDispatcher.d.ts +0 -13
  179. package/dist/components/sortable/EventDispatcher.d.ts.map +0 -1
  180. package/dist/components/sortable/PluginManager.d.ts +0 -27
  181. package/dist/components/sortable/PluginManager.d.ts.map +0 -1
  182. package/dist/components/sortable/Sortable.d.ts +0 -81
  183. package/dist/components/sortable/Sortable.d.ts.map +0 -1
  184. package/dist/components/sortable/index.d.ts +0 -5
  185. package/dist/components/sortable/index.d.ts.map +0 -1
  186. package/dist/components/sortable/utils.d.ts +0 -49
  187. package/dist/components/sortable/utils.d.ts.map +0 -1
  188. package/dist/composables/drag-n-drop/useDraggable.d.ts +0 -2
  189. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +0 -1
  190. package/dist/plugins/drag-n-drop/draggable.d.ts +0 -4
  191. package/dist/plugins/drag-n-drop/draggable.d.ts.map +0 -1
  192. package/dist/plugins/drag-n-drop/droppable.d.ts +0 -4
  193. package/dist/plugins/drag-n-drop/droppable.d.ts.map +0 -1
  194. package/dist/plugins/drag-n-drop/index.d.ts +0 -5
  195. package/dist/plugins/drag-n-drop/index.d.ts.map +0 -1
  196. package/dist/plugins/drag-n-drop/useDraggable.d.ts +0 -8
  197. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +0 -1
  198. package/dist/plugins/drag-n-drop/useDroppable.d.ts +0 -7
  199. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +0 -1
  200. package/dist/types/materialIcon.d.ts +0 -2
  201. package/dist/types/materialIcon.d.ts.map +0 -1
package/dist/index.cjs CHANGED
@@ -7555,10 +7555,9 @@ async function convertValueToCoords(state2, options) {
7555
7555
  crossAxis: 0,
7556
7556
  alignmentAxis: null
7557
7557
  } : {
7558
- mainAxis: 0,
7559
- crossAxis: 0,
7560
- alignmentAxis: null,
7561
- ...rawValue
7558
+ mainAxis: rawValue.mainAxis || 0,
7559
+ crossAxis: rawValue.crossAxis || 0,
7560
+ alignmentAxis: rawValue.alignmentAxis
7562
7561
  };
7563
7562
  if (alignment && typeof alignmentAxis === "number") {
7564
7563
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7663,7 +7662,11 @@ const shift$1 = function(options) {
7663
7662
  ...limitedCoords,
7664
7663
  data: {
7665
7664
  x: limitedCoords.x - x2,
7666
- y: limitedCoords.y - y2
7665
+ y: limitedCoords.y - y2,
7666
+ enabled: {
7667
+ [mainAxis]: checkMainAxis,
7668
+ [crossAxis]: checkCrossAxis
7669
+ }
7667
7670
  }
7668
7671
  };
7669
7672
  }
@@ -7677,6 +7680,7 @@ const size = function(options) {
7677
7680
  name: "size",
7678
7681
  options,
7679
7682
  async fn(state2) {
7683
+ var _state$middlewareData, _state$middlewareData2;
7680
7684
  const {
7681
7685
  placement,
7682
7686
  rects,
@@ -7712,10 +7716,11 @@ const size = function(options) {
7712
7716
  const noShift = !state2.middlewareData.shift;
7713
7717
  let availableHeight = overflowAvailableHeight;
7714
7718
  let availableWidth = overflowAvailableWidth;
7715
- if (isYAxis) {
7716
- availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7717
- } else {
7718
- availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7719
+ if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7720
+ availableWidth = maximumClippingWidth;
7721
+ }
7722
+ if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7723
+ availableHeight = maximumClippingHeight;
7719
7724
  }
7720
7725
  if (noShift && !alignment) {
7721
7726
  const xMin = max$1(overflow.left, 0);
@@ -20637,6 +20642,12 @@ let Node$2 = class Node2 {
20637
20642
  this.content = content || Fragment.empty;
20638
20643
  }
20639
20644
  /**
20645
+ The array of this node's child nodes.
20646
+ */
20647
+ get children() {
20648
+ return this.content.content;
20649
+ }
20650
+ /**
20640
20651
  The size of this node, as defined by the integer-based [indexing
20641
20652
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20642
20653
  amount of characters. For other leaf nodes, it is one. For
@@ -21323,7 +21334,7 @@ function resolveName(stream, name) {
21323
21334
  let result2 = [];
21324
21335
  for (let typeName in types) {
21325
21336
  let type4 = types[typeName];
21326
- if (type4.groups.indexOf(name) > -1)
21337
+ if (type4.isInGroup(name))
21327
21338
  result2.push(type4);
21328
21339
  }
21329
21340
  if (result2.length == 0)
@@ -21561,6 +21572,13 @@ let NodeType$1 = class NodeType2 {
21561
21572
  return this.isLeaf || !!this.spec.atom;
21562
21573
  }
21563
21574
  /**
21575
+ Return true when this node type is part of the given
21576
+ [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21577
+ */
21578
+ isInGroup(group) {
21579
+ return this.groups.indexOf(group) > -1;
21580
+ }
21581
+ /**
21564
21582
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21565
21583
  */
21566
21584
  get whitespace() {
@@ -22316,6 +22334,7 @@ class ParseContext {
22316
22334
  contentDOM = rule.contentElement;
22317
22335
  this.findAround(dom, contentDOM, true);
22318
22336
  this.addAll(contentDOM, marks);
22337
+ this.findAround(dom, contentDOM, false);
22319
22338
  }
22320
22339
  if (sync && this.sync(startIn))
22321
22340
  this.open--;
@@ -22491,7 +22510,7 @@ class ParseContext {
22491
22510
  return false;
22492
22511
  } else {
22493
22512
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22494
- if (!next || next.name != part && next.groups.indexOf(part) == -1)
22513
+ if (!next || next.name != part && !next.isInGroup(part))
22495
22514
  return false;
22496
22515
  depth--;
22497
22516
  }
@@ -23751,8 +23770,24 @@ function canJoin(doc2, pos) {
23751
23770
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23752
23771
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23753
23772
  }
23773
+ function canAppendWithSubstitutedLinebreaks(a2, b2) {
23774
+ if (!b2.content.size)
23775
+ a2.type.compatibleContent(b2.type);
23776
+ let match2 = a2.contentMatchAt(a2.childCount);
23777
+ let { linebreakReplacement } = a2.type.schema;
23778
+ for (let i2 = 0; i2 < b2.childCount; i2++) {
23779
+ let child = b2.child(i2);
23780
+ let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23781
+ match2 = match2.matchType(type3);
23782
+ if (!match2)
23783
+ return false;
23784
+ if (!a2.type.allowsMarks(child.marks))
23785
+ return false;
23786
+ }
23787
+ return match2.validEnd;
23788
+ }
23754
23789
  function joinable(a2, b2) {
23755
- return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23790
+ return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23756
23791
  }
23757
23792
  function joinPoint(doc2, pos, dir = -1) {
23758
23793
  let $pos = doc2.resolve(pos);
@@ -23777,8 +23812,31 @@ function joinPoint(doc2, pos, dir = -1) {
23777
23812
  }
23778
23813
  }
23779
23814
  function join(tr2, pos, depth) {
23780
- let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23781
- tr2.step(step);
23815
+ let convertNewlines = null;
23816
+ let { linebreakReplacement } = tr2.doc.type.schema;
23817
+ let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23818
+ if (linebreakReplacement && beforeType.inlineContent) {
23819
+ let pre = beforeType.whitespace == "pre";
23820
+ let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23821
+ if (pre && !supportLinebreak)
23822
+ convertNewlines = false;
23823
+ else if (!pre && supportLinebreak)
23824
+ convertNewlines = true;
23825
+ }
23826
+ let mapFrom = tr2.steps.length;
23827
+ if (convertNewlines === false) {
23828
+ let $after = tr2.doc.resolve(pos + depth);
23829
+ replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23830
+ }
23831
+ if (beforeType.inlineContent)
23832
+ clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23833
+ let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23834
+ tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23835
+ if (convertNewlines === true) {
23836
+ let $full = tr2.doc.resolve(start2);
23837
+ replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23838
+ }
23839
+ return tr2;
23782
23840
  }
23783
23841
  function insertPoint(doc2, pos, nodeType) {
23784
23842
  let $pos = doc2.resolve(pos);
@@ -24174,7 +24232,7 @@ function deleteRange$1(tr2, from2, to2) {
24174
24232
  return tr2.delete($from.before(depth), $to.after(depth));
24175
24233
  }
24176
24234
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24177
- if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24235
+ 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)))
24178
24236
  return tr2.delete($from.before(d2), to2);
24179
24237
  }
24180
24238
  tr2.delete(from2, to2);
@@ -26328,17 +26386,18 @@ class ViewDesc {
26328
26386
  // custom things with the selection. Note that this falls apart when
26329
26387
  // a selection starts in such a node and ends in another, in which
26330
26388
  // case we just use whatever domFromPos produces as a best effort.
26331
- setSelection(anchor, head, root2, force = false) {
26389
+ setSelection(anchor, head, view, force = false) {
26332
26390
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26333
26391
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26334
26392
  let child = this.children[i2], end2 = offset2 + child.size;
26335
26393
  if (from2 > offset2 && to2 < end2)
26336
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26394
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26337
26395
  offset2 = end2;
26338
26396
  }
26339
26397
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26340
26398
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26341
- let domSel = root2.getSelection();
26399
+ let domSel = view.root.getSelection();
26400
+ let selRange = view.domSelectionRange();
26342
26401
  let brKludge = false;
26343
26402
  if ((gecko || safari) && anchor == head) {
26344
26403
  let { node, offset: offset2 } = anchorDOM;
@@ -26361,12 +26420,12 @@ class ViewDesc {
26361
26420
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26362
26421
  }
26363
26422
  }
26364
- if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26365
- let after = domSel.focusNode.childNodes[domSel.focusOffset];
26423
+ if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26424
+ let after = selRange.focusNode.childNodes[selRange.focusOffset];
26366
26425
  if (after && after.contentEditable == "false")
26367
26426
  force = true;
26368
26427
  }
26369
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26428
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26370
26429
  return;
26371
26430
  let domSelExtended = false;
26372
26431
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26507,16 +26566,17 @@ class CompositionViewDesc extends ViewDesc {
26507
26566
  }
26508
26567
  }
26509
26568
  class MarkViewDesc extends ViewDesc {
26510
- constructor(parent, mark, dom, contentDOM) {
26569
+ constructor(parent, mark, dom, contentDOM, spec) {
26511
26570
  super(parent, [], dom, contentDOM);
26512
26571
  this.mark = mark;
26572
+ this.spec = spec;
26513
26573
  }
26514
26574
  static create(parent, mark, inline, view) {
26515
26575
  let custom2 = view.nodeViews[mark.type.name];
26516
26576
  let spec = custom2 && custom2(mark, view, inline);
26517
26577
  if (!spec || !spec.dom)
26518
26578
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26519
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26579
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26520
26580
  }
26521
26581
  parseRule() {
26522
26582
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26549,6 +26609,14 @@ class MarkViewDesc extends ViewDesc {
26549
26609
  copy2.children = nodes;
26550
26610
  return copy2;
26551
26611
  }
26612
+ ignoreMutation(mutation) {
26613
+ return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26614
+ }
26615
+ destroy() {
26616
+ if (this.spec.destroy)
26617
+ this.spec.destroy();
26618
+ super.destroy();
26619
+ }
26552
26620
  }
26553
26621
  class NodeViewDesc extends ViewDesc {
26554
26622
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26840,7 +26908,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26840
26908
  update(node, outerDeco, innerDeco, view) {
26841
26909
  if (this.dirty == NODE_DIRTY)
26842
26910
  return false;
26843
- if (this.spec.update) {
26911
+ if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26844
26912
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26845
26913
  if (result2)
26846
26914
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26857,8 +26925,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26857
26925
  deselectNode() {
26858
26926
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26859
26927
  }
26860
- setSelection(anchor, head, root2, force) {
26861
- this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
26928
+ setSelection(anchor, head, view, force) {
26929
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26862
26930
  }
26863
26931
  destroy() {
26864
26932
  if (this.spec.destroy)
@@ -27445,7 +27513,7 @@ function selectionToDOM(view, force = false) {
27445
27513
  if (!sel.empty && !sel.$from.parent.inlineContent)
27446
27514
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27447
27515
  }
27448
- view.docView.setSelection(anchor, head, view.root, force);
27516
+ view.docView.setSelection(anchor, head, view, force);
27449
27517
  if (brokenSelectBetweenUneditable) {
27450
27518
  if (resetEditableFrom)
27451
27519
  resetEditable(resetEditableFrom);
@@ -28081,11 +28149,14 @@ let _detachedDoc = null;
28081
28149
  function detachedDoc() {
28082
28150
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28083
28151
  }
28152
+ let _policy = null;
28084
28153
  function maybeWrapTrusted(html) {
28085
28154
  let trustedTypes = window.trustedTypes;
28086
28155
  if (!trustedTypes)
28087
28156
  return html;
28088
- return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28157
+ if (!_policy)
28158
+ _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28159
+ return _policy.createHTML(html);
28089
28160
  }
28090
28161
  function readHTML(html) {
28091
28162
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28217,9 +28288,7 @@ editHandlers.keydown = (view, _event) => {
28217
28288
  view.input.lastKeyCodeTime = Date.now();
28218
28289
  if (android && chrome && event.keyCode == 13)
28219
28290
  return;
28220
- if (view.domObserver.selectionChanged(view.domSelectionRange()))
28221
- view.domObserver.flush();
28222
- else if (event.keyCode != 229)
28291
+ if (event.keyCode != 229)
28223
28292
  view.domObserver.forceFlush();
28224
28293
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28225
28294
  let now = Date.now();
@@ -29597,9 +29666,6 @@ class DOMObserver {
29597
29666
  this.queue.push(mut);
29598
29667
  return this.queue;
29599
29668
  }
29600
- selectionChanged(sel) {
29601
- return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29602
- }
29603
29669
  flush() {
29604
29670
  let { view } = this;
29605
29671
  if (!view.docView || this.flushingSoon > -1)
@@ -29607,7 +29673,8 @@ class DOMObserver {
29607
29673
  let mutations = this.pendingRecords();
29608
29674
  if (mutations.length)
29609
29675
  this.queue = [];
29610
- let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29676
+ let sel = view.domSelectionRange();
29677
+ let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29611
29678
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29612
29679
  if (view.editable) {
29613
29680
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31047,7 +31114,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31047
31114
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31048
31115
  return false;
31049
31116
  if (dispatch)
31050
- dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31117
+ dispatch(state2.tr.join($pos.pos).scrollIntoView());
31051
31118
  return true;
31052
31119
  }
31053
31120
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31063,9 +31130,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31063
31130
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31064
31131
  wrap2 = Fragment.from(before.copy(wrap2));
31065
31132
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31066
- let joinAt = end2 + 2 * conn.length;
31067
- if (canJoin(tr2.doc, joinAt))
31068
- tr2.join(joinAt);
31133
+ let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31134
+ if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31135
+ tr2.join($joinAt.pos);
31069
31136
  dispatch(tr2.scrollIntoView());
31070
31137
  }
31071
31138
  return true;
@@ -31430,6 +31497,13 @@ class EventEmitter {
31430
31497
  }
31431
31498
  return this;
31432
31499
  }
31500
+ once(event, fn3) {
31501
+ const onceFn = (...args) => {
31502
+ this.off(event, onceFn);
31503
+ fn3.apply(this, args);
31504
+ };
31505
+ return this.on(event, onceFn);
31506
+ }
31433
31507
  removeAllListeners() {
31434
31508
  this.callbacks = {};
31435
31509
  }
@@ -31677,6 +31751,7 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31677
31751
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31678
31752
  code: callOrReturn(getExtensionField(extension, "code", context)),
31679
31753
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31754
+ linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31680
31755
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31681
31756
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31682
31757
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31759,6 +31834,13 @@ function isExtensionRulesEnabled(extension, enabled) {
31759
31834
  }
31760
31835
  return enabled;
31761
31836
  }
31837
+ function getHTMLFromFragment(fragment, schema) {
31838
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31839
+ const temporaryDocument = document.implementation.createHTMLDocument();
31840
+ const container = temporaryDocument.createElement("div");
31841
+ container.appendChild(documentFragment);
31842
+ return container.innerHTML;
31843
+ }
31762
31844
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31763
31845
  let textBefore = "";
31764
31846
  const sliceEndPos = $from.parentOffset;
@@ -31869,7 +31951,7 @@ function inputRulesPlugin(props2) {
31869
31951
  init() {
31870
31952
  return null;
31871
31953
  },
31872
- apply(tr2, prev) {
31954
+ apply(tr2, prev, state2) {
31873
31955
  const stored = tr2.getMeta(plugin);
31874
31956
  if (stored) {
31875
31957
  return stored;
@@ -31878,7 +31960,13 @@ function inputRulesPlugin(props2) {
31878
31960
  const isSimulatedInput = !!simulatedInputMeta;
31879
31961
  if (isSimulatedInput) {
31880
31962
  setTimeout(() => {
31881
- const { from: from2, text } = simulatedInputMeta;
31963
+ let { text } = simulatedInputMeta;
31964
+ if (typeof text === "string") {
31965
+ text = text;
31966
+ } else {
31967
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
31968
+ }
31969
+ const { from: from2 } = simulatedInputMeta;
31882
31970
  const to2 = from2 + text.length;
31883
31971
  run$1({
31884
31972
  editor,
@@ -31947,6 +32035,109 @@ function inputRulesPlugin(props2) {
31947
32035
  });
31948
32036
  return plugin;
31949
32037
  }
32038
+ function getType$1(value) {
32039
+ return Object.prototype.toString.call(value).slice(8, -1);
32040
+ }
32041
+ function isPlainObject$1(value) {
32042
+ if (getType$1(value) !== "Object") {
32043
+ return false;
32044
+ }
32045
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32046
+ }
32047
+ function mergeDeep(target, source) {
32048
+ const output = { ...target };
32049
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32050
+ Object.keys(source).forEach((key) => {
32051
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32052
+ output[key] = mergeDeep(target[key], source[key]);
32053
+ } else {
32054
+ output[key] = source[key];
32055
+ }
32056
+ });
32057
+ }
32058
+ return output;
32059
+ }
32060
+ class Mark {
32061
+ constructor(config = {}) {
32062
+ this.type = "mark";
32063
+ this.name = "mark";
32064
+ this.parent = null;
32065
+ this.child = null;
32066
+ this.config = {
32067
+ name: this.name,
32068
+ defaultOptions: {}
32069
+ };
32070
+ this.config = {
32071
+ ...this.config,
32072
+ ...config
32073
+ };
32074
+ this.name = this.config.name;
32075
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32076
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32077
+ }
32078
+ this.options = this.config.defaultOptions;
32079
+ if (this.config.addOptions) {
32080
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
32081
+ name: this.name
32082
+ }));
32083
+ }
32084
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32085
+ name: this.name,
32086
+ options: this.options
32087
+ })) || {};
32088
+ }
32089
+ static create(config = {}) {
32090
+ return new Mark(config);
32091
+ }
32092
+ configure(options = {}) {
32093
+ const extension = this.extend({
32094
+ ...this.config,
32095
+ addOptions: () => {
32096
+ return mergeDeep(this.options, options);
32097
+ }
32098
+ });
32099
+ extension.name = this.name;
32100
+ extension.parent = this.parent;
32101
+ return extension;
32102
+ }
32103
+ extend(extendedConfig = {}) {
32104
+ const extension = new Mark(extendedConfig);
32105
+ extension.parent = this;
32106
+ this.child = extension;
32107
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32108
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32109
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32110
+ }
32111
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32112
+ name: extension.name
32113
+ }));
32114
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32115
+ name: extension.name,
32116
+ options: extension.options
32117
+ }));
32118
+ return extension;
32119
+ }
32120
+ static handleExit({ editor, mark }) {
32121
+ const { tr: tr2 } = editor.state;
32122
+ const currentPos = editor.state.selection.$from;
32123
+ const isAtEnd = currentPos.pos === currentPos.end();
32124
+ if (isAtEnd) {
32125
+ const currentMarks = currentPos.marks();
32126
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32127
+ if (!isInMark) {
32128
+ return false;
32129
+ }
32130
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32131
+ if (removeMark2) {
32132
+ tr2.removeStoredMark(removeMark2);
32133
+ }
32134
+ tr2.insertText(" ", currentPos.pos);
32135
+ editor.view.dispatch(tr2);
32136
+ return true;
32137
+ }
32138
+ return false;
32139
+ }
32140
+ }
31950
32141
  function isNumber$1(value) {
31951
32142
  return typeof value === "number";
31952
32143
  }
@@ -32033,7 +32224,12 @@ function pasteRulesPlugin(props2) {
32033
32224
  let isPastedFromProseMirror = false;
32034
32225
  let isDroppedFromProseMirror = false;
32035
32226
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32036
- let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32227
+ let dropEvent;
32228
+ try {
32229
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32230
+ } catch (e) {
32231
+ dropEvent = null;
32232
+ }
32037
32233
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32038
32234
  const tr2 = state2.tr;
32039
32235
  const chainableState = createChainableState({
@@ -32052,7 +32248,11 @@ function pasteRulesPlugin(props2) {
32052
32248
  if (!handler || !tr2.steps.length) {
32053
32249
  return;
32054
32250
  }
32055
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32251
+ try {
32252
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32253
+ } catch (e) {
32254
+ dropEvent = null;
32255
+ }
32056
32256
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32057
32257
  return tr2;
32058
32258
  };
@@ -32097,7 +32297,13 @@ function pasteRulesPlugin(props2) {
32097
32297
  return;
32098
32298
  }
32099
32299
  if (isSimulatedPaste) {
32100
- const { from: from3, text } = simulatedPasteMeta;
32300
+ let { text } = simulatedPasteMeta;
32301
+ if (typeof text === "string") {
32302
+ text = text;
32303
+ } else {
32304
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32305
+ }
32306
+ const { from: from3 } = simulatedPasteMeta;
32101
32307
  const to3 = from3 + text.length;
32102
32308
  const pasteEvt = createClipboardPasteEvent(text);
32103
32309
  return processEvent({
@@ -32371,28 +32577,6 @@ class ExtensionManager {
32371
32577
  });
32372
32578
  }
32373
32579
  }
32374
- function getType$1(value) {
32375
- return Object.prototype.toString.call(value).slice(8, -1);
32376
- }
32377
- function isPlainObject$1(value) {
32378
- if (getType$1(value) !== "Object") {
32379
- return false;
32380
- }
32381
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32382
- }
32383
- function mergeDeep(target, source) {
32384
- const output = { ...target };
32385
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32386
- Object.keys(source).forEach((key) => {
32387
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32388
- output[key] = mergeDeep(target[key], source[key]);
32389
- } else {
32390
- output[key] = source[key];
32391
- }
32392
- });
32393
- }
32394
- return output;
32395
- }
32396
32580
  class Extension {
32397
32581
  constructor(config = {}) {
32398
32582
  this.type = "extension";
@@ -32643,23 +32827,29 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32643
32827
  }
32644
32828
  function findMarkInSet(marks, type3, attributes = {}) {
32645
32829
  return marks.find((item) => {
32646
- return item.type === type3 && objectIncludes(item.attrs, attributes);
32830
+ return item.type === type3 && objectIncludes(
32831
+ // Only check equality for the attributes that are provided
32832
+ Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32833
+ attributes
32834
+ );
32647
32835
  });
32648
32836
  }
32649
32837
  function isMarkInSet(marks, type3, attributes = {}) {
32650
32838
  return !!findMarkInSet(marks, type3, attributes);
32651
32839
  }
32652
- function getMarkRange($pos, type3, attributes = {}) {
32840
+ function getMarkRange($pos, type3, attributes) {
32841
+ var _a2;
32653
32842
  if (!$pos || !type3) {
32654
32843
  return;
32655
32844
  }
32656
32845
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32657
- if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32846
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32658
32847
  start2 = $pos.parent.childBefore($pos.parentOffset);
32659
32848
  }
32660
- if (!start2.node) {
32849
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32661
32850
  return;
32662
32851
  }
32852
+ attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32663
32853
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32664
32854
  if (!mark) {
32665
32855
  return;
@@ -32668,8 +32858,7 @@ function getMarkRange($pos, type3, attributes = {}) {
32668
32858
  let startPos = $pos.start() + start2.offset;
32669
32859
  let endIndex = startIndex + 1;
32670
32860
  let endPos = startPos + start2.node.nodeSize;
32671
- findMarkInSet([...start2.node.marks], type3, attributes);
32672
- while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32861
+ while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32673
32862
  startIndex -= 1;
32674
32863
  startPos -= $pos.parent.child(startIndex).nodeSize;
32675
32864
  }
@@ -32810,6 +32999,9 @@ function elementFromString(value) {
32810
32999
  return removeWhitespaces(html);
32811
33000
  }
32812
33001
  function createNodeFromContent(content, schema, options) {
33002
+ if (content instanceof Node$2 || content instanceof Fragment) {
33003
+ return content;
33004
+ }
32813
33005
  options = {
32814
33006
  slice: true,
32815
33007
  parseOptions: {},
@@ -32904,7 +33096,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32904
33096
  var _a2;
32905
33097
  if (dispatch) {
32906
33098
  options = {
32907
- parseOptions: {},
33099
+ parseOptions: editor.options.parseOptions,
32908
33100
  updateSelection: true,
32909
33101
  applyInputRules: false,
32910
33102
  applyPasteRules: false,
@@ -32924,7 +33116,9 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32924
33116
  editor,
32925
33117
  error: e,
32926
33118
  disableCollaboration: () => {
32927
- console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33119
+ if (editor.storage.collaboration) {
33120
+ editor.storage.collaboration.isDisabled = true;
33121
+ }
32928
33122
  }
32929
33123
  });
32930
33124
  return false;
@@ -32950,6 +33144,14 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32950
33144
  if (isOnlyTextContent) {
32951
33145
  if (Array.isArray(value)) {
32952
33146
  newContent = value.map((v2) => v2.text || "").join("");
33147
+ } else if (value instanceof Fragment) {
33148
+ let text = "";
33149
+ value.forEach((node) => {
33150
+ if (node.text) {
33151
+ text += node.text;
33152
+ }
33153
+ });
33154
+ newContent = text;
32953
33155
  } else if (typeof value === "object" && !!value && !!value.text) {
32954
33156
  newContent = value.text;
32955
33157
  } else {
@@ -33285,13 +33487,6 @@ function findParentNodeClosestToPos($pos, predicate) {
33285
33487
  function findParentNode(predicate) {
33286
33488
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33287
33489
  }
33288
- function getHTMLFromFragment(fragment, schema) {
33289
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33290
- const temporaryDocument = document.implementation.createHTMLDocument();
33291
- const container = temporaryDocument.createElement("div");
33292
- container.appendChild(documentFragment);
33293
- return container.innerHTML;
33294
- }
33295
33490
  function getText(node, options) {
33296
33491
  const range2 = {
33297
33492
  from: 0,
@@ -33577,18 +33772,22 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33577
33772
  };
33578
33773
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33579
33774
  const type3 = getNodeType(typeOrName, state2.schema);
33775
+ let attributesToCopy;
33776
+ if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33777
+ attributesToCopy = state2.selection.$anchor.parent.attrs;
33778
+ }
33580
33779
  if (!type3.isTextblock) {
33581
33780
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33582
33781
  return false;
33583
33782
  }
33584
33783
  return chain().command(({ commands: commands2 }) => {
33585
- const canSetBlock = setBlockType(type3, attributes)(state2);
33784
+ const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33586
33785
  if (canSetBlock) {
33587
33786
  return true;
33588
33787
  }
33589
33788
  return commands2.clearNodes();
33590
33789
  }).command(({ state: updatedState }) => {
33591
- return setBlockType(type3, attributes)(updatedState, dispatch);
33790
+ return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33592
33791
  }).run();
33593
33792
  };
33594
33793
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -33947,18 +34146,59 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
33947
34146
  tr2.selection.ranges.forEach((range2) => {
33948
34147
  const from2 = range2.$from.pos;
33949
34148
  const to2 = range2.$to.pos;
33950
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
33951
- if (nodeType && nodeType === node.type) {
33952
- tr2.setNodeMarkup(pos, void 0, {
33953
- ...node.attrs,
34149
+ let lastPos;
34150
+ let lastNode;
34151
+ let trimmedFrom;
34152
+ let trimmedTo;
34153
+ if (tr2.selection.empty) {
34154
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34155
+ if (nodeType && nodeType === node.type) {
34156
+ trimmedFrom = Math.max(pos, from2);
34157
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34158
+ lastPos = pos;
34159
+ lastNode = node;
34160
+ }
34161
+ });
34162
+ } else {
34163
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34164
+ if (pos < from2 && nodeType && nodeType === node.type) {
34165
+ trimmedFrom = Math.max(pos, from2);
34166
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34167
+ lastPos = pos;
34168
+ lastNode = node;
34169
+ }
34170
+ if (pos >= from2 && pos <= to2) {
34171
+ if (nodeType && nodeType === node.type) {
34172
+ tr2.setNodeMarkup(pos, void 0, {
34173
+ ...node.attrs,
34174
+ ...attributes
34175
+ });
34176
+ }
34177
+ if (markType && node.marks.length) {
34178
+ node.marks.forEach((mark) => {
34179
+ if (markType === mark.type) {
34180
+ const trimmedFrom2 = Math.max(pos, from2);
34181
+ const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34182
+ tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34183
+ ...mark.attrs,
34184
+ ...attributes
34185
+ }));
34186
+ }
34187
+ });
34188
+ }
34189
+ }
34190
+ });
34191
+ }
34192
+ if (lastNode) {
34193
+ if (lastPos !== void 0) {
34194
+ tr2.setNodeMarkup(lastPos, void 0, {
34195
+ ...lastNode.attrs,
33954
34196
  ...attributes
33955
34197
  });
33956
34198
  }
33957
- if (markType && node.marks.length) {
33958
- node.marks.forEach((mark) => {
34199
+ if (markType && lastNode.marks.length) {
34200
+ lastNode.marks.forEach((mark) => {
33959
34201
  if (markType === mark.type) {
33960
- const trimmedFrom = Math.max(pos, from2);
33961
- const trimmedTo = Math.min(pos + node.nodeSize, to2);
33962
34202
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
33963
34203
  ...mark.attrs,
33964
34204
  ...attributes
@@ -33966,7 +34206,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
33966
34206
  }
33967
34207
  });
33968
34208
  }
33969
- });
34209
+ }
33970
34210
  });
33971
34211
  }
33972
34212
  return true;
@@ -34048,6 +34288,26 @@ const Commands = Extension.create({
34048
34288
  };
34049
34289
  }
34050
34290
  });
34291
+ const Drop = Extension.create({
34292
+ name: "drop",
34293
+ addProseMirrorPlugins() {
34294
+ return [
34295
+ new Plugin({
34296
+ key: new PluginKey("tiptapDrop"),
34297
+ props: {
34298
+ handleDrop: (_2, e, slice4, moved2) => {
34299
+ this.editor.emit("drop", {
34300
+ editor: this.editor,
34301
+ event: e,
34302
+ slice: slice4,
34303
+ moved: moved2
34304
+ });
34305
+ }
34306
+ }
34307
+ })
34308
+ ];
34309
+ }
34310
+ });
34051
34311
  const Editable = Extension.create({
34052
34312
  name: "editable",
34053
34313
  addProseMirrorPlugins() {
@@ -34197,6 +34457,25 @@ const Keymap = Extension.create({
34197
34457
  ];
34198
34458
  }
34199
34459
  });
34460
+ const Paste = Extension.create({
34461
+ name: "paste",
34462
+ addProseMirrorPlugins() {
34463
+ return [
34464
+ new Plugin({
34465
+ key: new PluginKey("tiptapPaste"),
34466
+ props: {
34467
+ handlePaste: (_view, e, slice4) => {
34468
+ this.editor.emit("paste", {
34469
+ editor: this.editor,
34470
+ event: e,
34471
+ slice: slice4
34472
+ });
34473
+ }
34474
+ }
34475
+ })
34476
+ ];
34477
+ }
34478
+ });
34200
34479
  const Tabindex = Extension.create({
34201
34480
  name: "tabindex",
34202
34481
  addProseMirrorPlugins() {
@@ -34304,7 +34583,8 @@ class NodePos {
34304
34583
  const children2 = [];
34305
34584
  this.node.content.forEach((node, offset2) => {
34306
34585
  const isBlock = node.isBlock && !node.isTextblock;
34307
- const targetPos = this.pos + offset2 + 1;
34586
+ const isNonTextAtom = node.isAtom && !node.isText;
34587
+ const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34308
34588
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34309
34589
  if (!isBlock && $pos.depth <= this.depth) {
34310
34590
  return;
@@ -34373,30 +34653,14 @@ class NodePos {
34373
34653
  return nodes;
34374
34654
  }
34375
34655
  setAttribute(attributes) {
34376
- const oldSelection = this.editor.state.selection;
34377
- this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34656
+ const { tr: tr2 } = this.editor.state;
34657
+ tr2.setNodeMarkup(this.from, void 0, {
34658
+ ...this.node.attrs,
34659
+ ...attributes
34660
+ });
34661
+ this.editor.view.dispatch(tr2);
34378
34662
  }
34379
34663
  }
34380
- const DropPlugin = (onDrop) => {
34381
- return new Plugin({
34382
- key: new PluginKey("tiptapDrop"),
34383
- props: {
34384
- handleDrop: (_2, e, slice4, moved2) => {
34385
- onDrop(e, slice4, moved2);
34386
- }
34387
- }
34388
- });
34389
- };
34390
- const PastePlugin = (onPaste) => {
34391
- return new Plugin({
34392
- key: new PluginKey("tiptapPaste"),
34393
- props: {
34394
- handlePaste: (_view, e, slice4) => {
34395
- onPaste(e, slice4);
34396
- }
34397
- }
34398
- });
34399
- };
34400
34664
  const style = `.ProseMirror {
34401
34665
  position: relative;
34402
34666
  }
@@ -34539,12 +34803,8 @@ let Editor$1 = class Editor2 extends EventEmitter {
34539
34803
  this.on("focus", this.options.onFocus);
34540
34804
  this.on("blur", this.options.onBlur);
34541
34805
  this.on("destroy", this.options.onDestroy);
34542
- if (this.options.onPaste) {
34543
- this.registerPlugin(PastePlugin(this.options.onPaste));
34544
- }
34545
- if (this.options.onDrop) {
34546
- this.registerPlugin(DropPlugin(this.options.onDrop));
34547
- }
34806
+ this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34807
+ this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34548
34808
  window.setTimeout(() => {
34549
34809
  if (this.isDestroyed) {
34550
34810
  return;
@@ -34641,17 +34901,24 @@ let Editor$1 = class Editor2 extends EventEmitter {
34641
34901
  /**
34642
34902
  * Unregister a ProseMirror plugin.
34643
34903
  *
34644
- * @param nameOrPluginKey The plugins name
34904
+ * @param nameOrPluginKeyToRemove The plugins name
34645
34905
  * @returns The new editor state or undefined if the editor is destroyed
34646
34906
  */
34647
- unregisterPlugin(nameOrPluginKey) {
34907
+ unregisterPlugin(nameOrPluginKeyToRemove) {
34648
34908
  if (this.isDestroyed) {
34649
34909
  return void 0;
34650
34910
  }
34651
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34911
+ const prevPlugins = this.state.plugins;
34912
+ let plugins2 = prevPlugins;
34913
+ [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34914
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34915
+ plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34916
+ });
34917
+ if (prevPlugins.length === plugins2.length) {
34918
+ return void 0;
34919
+ }
34652
34920
  const state2 = this.state.reconfigure({
34653
- // @ts-ignore
34654
- plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34921
+ plugins: plugins2
34655
34922
  });
34656
34923
  this.view.updateState(state2);
34657
34924
  return state2;
@@ -34669,7 +34936,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34669
34936
  Commands,
34670
34937
  FocusEvents,
34671
34938
  Keymap,
34672
- Tabindex
34939
+ Tabindex,
34940
+ Drop,
34941
+ Paste
34673
34942
  ].filter((ext) => {
34674
34943
  if (typeof this.options.enableCoreExtensions === "object") {
34675
34944
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34699,6 +34968,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34699
34968
  * Creates a ProseMirror view.
34700
34969
  */
34701
34970
  createView() {
34971
+ var _a2;
34702
34972
  let doc2;
34703
34973
  try {
34704
34974
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34710,6 +34980,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34710
34980
  editor: this,
34711
34981
  error: e,
34712
34982
  disableCollaboration: () => {
34983
+ if (this.storage.collaboration) {
34984
+ this.storage.collaboration.isDisabled = true;
34985
+ }
34713
34986
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34714
34987
  this.createExtensionManager();
34715
34988
  }
@@ -34719,6 +34992,11 @@ let Editor$1 = class Editor2 extends EventEmitter {
34719
34992
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34720
34993
  this.view = new EditorView(this.options.element, {
34721
34994
  ...this.options.editorProps,
34995
+ attributes: {
34996
+ // add `role="textbox"` to the editor element
34997
+ role: "textbox",
34998
+ ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
34999
+ },
34722
35000
  dispatchTransaction: this.dispatchTransaction.bind(this),
34723
35001
  state: EditorState.create({
34724
35002
  doc: doc2,
@@ -35018,87 +35296,6 @@ function wrappingInputRule(config) {
35018
35296
  }
35019
35297
  });
35020
35298
  }
35021
- class Mark {
35022
- constructor(config = {}) {
35023
- this.type = "mark";
35024
- this.name = "mark";
35025
- this.parent = null;
35026
- this.child = null;
35027
- this.config = {
35028
- name: this.name,
35029
- defaultOptions: {}
35030
- };
35031
- this.config = {
35032
- ...this.config,
35033
- ...config
35034
- };
35035
- this.name = this.config.name;
35036
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35037
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35038
- }
35039
- this.options = this.config.defaultOptions;
35040
- if (this.config.addOptions) {
35041
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
35042
- name: this.name
35043
- }));
35044
- }
35045
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35046
- name: this.name,
35047
- options: this.options
35048
- })) || {};
35049
- }
35050
- static create(config = {}) {
35051
- return new Mark(config);
35052
- }
35053
- configure(options = {}) {
35054
- const extension = this.extend({
35055
- ...this.config,
35056
- addOptions: () => {
35057
- return mergeDeep(this.options, options);
35058
- }
35059
- });
35060
- extension.name = this.name;
35061
- extension.parent = this.parent;
35062
- return extension;
35063
- }
35064
- extend(extendedConfig = {}) {
35065
- const extension = new Mark(extendedConfig);
35066
- extension.parent = this;
35067
- this.child = extension;
35068
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35069
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35070
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35071
- }
35072
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35073
- name: extension.name
35074
- }));
35075
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35076
- name: extension.name,
35077
- options: extension.options
35078
- }));
35079
- return extension;
35080
- }
35081
- static handleExit({ editor, mark }) {
35082
- const { tr: tr2 } = editor.state;
35083
- const currentPos = editor.state.selection.$from;
35084
- const isAtEnd = currentPos.pos === currentPos.end();
35085
- if (isAtEnd) {
35086
- const currentMarks = currentPos.marks();
35087
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35088
- if (!isInMark) {
35089
- return false;
35090
- }
35091
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35092
- if (removeMark2) {
35093
- tr2.removeStoredMark(removeMark2);
35094
- }
35095
- tr2.insertText(" ", currentPos.pos);
35096
- editor.view.dispatch(tr2);
35097
- return true;
35098
- }
35099
- return false;
35100
- }
35101
- }
35102
35299
  let Node$1 = class Node3 {
35103
35300
  constructor(config = {}) {
35104
35301
  this.type = "node";
@@ -35928,7 +36125,7 @@ function drawCellSelection(state2) {
35928
36125
  return DecorationSet.create(state2.doc, cells);
35929
36126
  }
35930
36127
  function isCellBoundarySelection({ $from, $to }) {
35931
- if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36128
+ if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
35932
36129
  return false;
35933
36130
  let afterFrom = $from.pos;
35934
36131
  let beforeTo = $to.pos;
@@ -36091,343 +36288,553 @@ function fixTable(state2, table, tablePos, tr2) {
36091
36288
  }
36092
36289
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36093
36290
  }
36094
- function pastedCells(slice4) {
36095
- if (!slice4.size)
36096
- return null;
36097
- let { content, openStart, openEnd } = slice4;
36098
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36099
- openStart--;
36100
- openEnd--;
36101
- content = content.child(0).content;
36291
+ function selectedRect(state2) {
36292
+ const sel = state2.selection;
36293
+ const $pos = selectionCell(state2);
36294
+ const table = $pos.node(-1);
36295
+ const tableStart = $pos.start(-1);
36296
+ const map4 = TableMap.get(table);
36297
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36298
+ sel.$anchorCell.pos - tableStart,
36299
+ sel.$headCell.pos - tableStart
36300
+ ) : map4.findCell($pos.pos - tableStart);
36301
+ return { ...rect, tableStart, map: map4, table };
36302
+ }
36303
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36304
+ let refColumn = col > 0 ? -1 : 0;
36305
+ if (columnIsHeader(map4, table, col + refColumn)) {
36306
+ refColumn = col == 0 || col == map4.width ? null : 0;
36102
36307
  }
36103
- const first2 = content.child(0);
36104
- const role = first2.type.spec.tableRole;
36105
- const schema = first2.type.schema, rows = [];
36106
- if (role == "row") {
36107
- for (let i2 = 0; i2 < content.childCount; i2++) {
36108
- let cells = content.child(i2).content;
36109
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36110
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36111
- if (left2 || right2)
36112
- cells = fitSlice(
36113
- tableNodeTypes(schema).row,
36114
- new Slice(cells, left2, right2)
36115
- ).content;
36116
- rows.push(cells);
36308
+ for (let row = 0; row < map4.height; row++) {
36309
+ const index2 = row * map4.width + col;
36310
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36311
+ const pos = map4.map[index2];
36312
+ const cell = table.nodeAt(pos);
36313
+ tr2.setNodeMarkup(
36314
+ tr2.mapping.map(tableStart + pos),
36315
+ null,
36316
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36317
+ );
36318
+ row += cell.attrs.rowspan - 1;
36319
+ } else {
36320
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36321
+ const pos = map4.positionAt(row, col, table);
36322
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36117
36323
  }
36118
- } else if (role == "cell" || role == "header_cell") {
36119
- rows.push(
36120
- openStart || openEnd ? fitSlice(
36121
- tableNodeTypes(schema).row,
36122
- new Slice(content, openStart, openEnd)
36123
- ).content : content
36124
- );
36125
- } else {
36126
- return null;
36127
36324
  }
36128
- return ensureRectangular(schema, rows);
36325
+ return tr2;
36129
36326
  }
36130
- function ensureRectangular(schema, rows) {
36131
- const widths = [];
36132
- for (let i2 = 0; i2 < rows.length; i2++) {
36133
- const row = rows[i2];
36134
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36135
- const { rowspan, colspan } = row.child(j2).attrs;
36136
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36137
- widths[r2] = (widths[r2] || 0) + colspan;
36138
- }
36139
- }
36140
- let width = 0;
36141
- for (let r2 = 0; r2 < widths.length; r2++)
36142
- width = Math.max(width, widths[r2]);
36143
- for (let r2 = 0; r2 < widths.length; r2++) {
36144
- if (r2 >= rows.length)
36145
- rows.push(Fragment.empty);
36146
- if (widths[r2] < width) {
36147
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36148
- const cells = [];
36149
- for (let i2 = widths[r2]; i2 < width; i2++) {
36150
- cells.push(empty2);
36151
- }
36152
- rows[r2] = rows[r2].append(Fragment.from(cells));
36153
- }
36327
+ function addColumnBefore(state2, dispatch) {
36328
+ if (!isInTable(state2))
36329
+ return false;
36330
+ if (dispatch) {
36331
+ const rect = selectedRect(state2);
36332
+ dispatch(addColumn(state2.tr, rect, rect.left));
36154
36333
  }
36155
- return { height: rows.length, width, rows };
36334
+ return true;
36156
36335
  }
36157
- function fitSlice(nodeType, slice4) {
36158
- const node = nodeType.createAndFill();
36159
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36160
- return tr2.doc;
36336
+ function addColumnAfter(state2, dispatch) {
36337
+ if (!isInTable(state2))
36338
+ return false;
36339
+ if (dispatch) {
36340
+ const rect = selectedRect(state2);
36341
+ dispatch(addColumn(state2.tr, rect, rect.right));
36342
+ }
36343
+ return true;
36161
36344
  }
36162
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36163
- if (width != newWidth) {
36164
- const added = [];
36165
- const newRows = [];
36166
- for (let row = 0; row < rows.length; row++) {
36167
- const frag = rows[row], cells = [];
36168
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36169
- let cell = frag.child(i2 % frag.childCount);
36170
- if (col + cell.attrs.colspan > newWidth)
36171
- cell = cell.type.createChecked(
36172
- removeColSpan(
36173
- cell.attrs,
36174
- cell.attrs.colspan,
36175
- col + cell.attrs.colspan - newWidth
36176
- ),
36177
- cell.content
36178
- );
36179
- cells.push(cell);
36180
- col += cell.attrs.colspan;
36181
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36182
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36183
- }
36184
- newRows.push(Fragment.from(cells));
36345
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36346
+ const mapStart = tr2.mapping.maps.length;
36347
+ for (let row = 0; row < map4.height; ) {
36348
+ const index2 = row * map4.width + col;
36349
+ const pos = map4.map[index2];
36350
+ const cell = table.nodeAt(pos);
36351
+ const attrs = cell.attrs;
36352
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36353
+ tr2.setNodeMarkup(
36354
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36355
+ null,
36356
+ removeColSpan(attrs, col - map4.colCount(pos))
36357
+ );
36358
+ } else {
36359
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36360
+ tr2.delete(start2, start2 + cell.nodeSize);
36185
36361
  }
36186
- rows = newRows;
36187
- width = newWidth;
36362
+ row += attrs.rowspan;
36188
36363
  }
36189
- if (height != newHeight) {
36190
- const newRows = [];
36191
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36192
- const cells = [], source = rows[i2 % height];
36193
- for (let j2 = 0; j2 < source.childCount; j2++) {
36194
- let cell = source.child(j2);
36195
- if (row + cell.attrs.rowspan > newHeight)
36196
- cell = cell.type.create(
36197
- {
36198
- ...cell.attrs,
36199
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36200
- },
36201
- cell.content
36202
- );
36203
- cells.push(cell);
36364
+ }
36365
+ function deleteColumn(state2, dispatch) {
36366
+ if (!isInTable(state2))
36367
+ return false;
36368
+ if (dispatch) {
36369
+ const rect = selectedRect(state2);
36370
+ const tr2 = state2.tr;
36371
+ if (rect.left == 0 && rect.right == rect.map.width)
36372
+ return false;
36373
+ for (let i2 = rect.right - 1; ; i2--) {
36374
+ removeColumn(tr2, rect, i2);
36375
+ if (i2 == rect.left)
36376
+ break;
36377
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36378
+ if (!table) {
36379
+ throw RangeError("No table found");
36204
36380
  }
36205
- newRows.push(Fragment.from(cells));
36381
+ rect.table = table;
36382
+ rect.map = TableMap.get(table);
36206
36383
  }
36207
- rows = newRows;
36208
- height = newHeight;
36384
+ dispatch(tr2);
36209
36385
  }
36210
- return { width, height, rows };
36386
+ return true;
36211
36387
  }
36212
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36213
- const schema = tr2.doc.type.schema;
36214
- const types = tableNodeTypes(schema);
36215
- let empty2;
36216
- let emptyHead;
36217
- if (width > map4.width) {
36218
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36219
- const rowNode = table.child(row);
36220
- rowEnd += rowNode.nodeSize;
36221
- const cells = [];
36222
- let add2;
36223
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36224
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36225
- else
36226
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36227
- for (let i2 = map4.width; i2 < width; i2++)
36228
- cells.push(add2);
36229
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36388
+ function rowIsHeader(map4, table, row) {
36389
+ var _a2;
36390
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
36391
+ for (let col = 0; col < map4.width; col++)
36392
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36393
+ return false;
36394
+ return true;
36395
+ }
36396
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
36397
+ var _a2;
36398
+ let rowPos = tableStart;
36399
+ for (let i2 = 0; i2 < row; i2++)
36400
+ rowPos += table.child(i2).nodeSize;
36401
+ const cells = [];
36402
+ let refRow = row > 0 ? -1 : 0;
36403
+ if (rowIsHeader(map4, table, row + refRow))
36404
+ refRow = row == 0 || row == map4.height ? null : 0;
36405
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36406
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36407
+ const pos = map4.map[index2];
36408
+ const attrs = table.nodeAt(pos).attrs;
36409
+ tr2.setNodeMarkup(tableStart + pos, null, {
36410
+ ...attrs,
36411
+ rowspan: attrs.rowspan + 1
36412
+ });
36413
+ col += attrs.colspan - 1;
36414
+ } else {
36415
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36416
+ const node = type3 == null ? void 0 : type3.createAndFill();
36417
+ if (node)
36418
+ cells.push(node);
36230
36419
  }
36231
36420
  }
36232
- if (height > map4.height) {
36233
- const cells = [];
36234
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36235
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36236
- cells.push(
36237
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36238
- );
36239
- }
36240
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36241
- for (let i2 = map4.height; i2 < height; i2++)
36242
- rows.push(emptyRow);
36243
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36421
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36422
+ return tr2;
36423
+ }
36424
+ function addRowBefore(state2, dispatch) {
36425
+ if (!isInTable(state2))
36426
+ return false;
36427
+ if (dispatch) {
36428
+ const rect = selectedRect(state2);
36429
+ dispatch(addRow(state2.tr, rect, rect.top));
36244
36430
  }
36245
- return !!(empty2 || emptyHead);
36431
+ return true;
36246
36432
  }
36247
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36248
- if (top2 == 0 || top2 == map4.height)
36433
+ function addRowAfter(state2, dispatch) {
36434
+ if (!isInTable(state2))
36249
36435
  return false;
36250
- let found2 = false;
36251
- for (let col = left2; col < right2; col++) {
36252
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
36253
- if (map4.map[index2 - map4.width] == pos) {
36254
- found2 = true;
36255
- const cell = table.nodeAt(pos);
36256
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36257
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36258
- ...cell.attrs,
36259
- rowspan: top2 - cellTop
36436
+ if (dispatch) {
36437
+ const rect = selectedRect(state2);
36438
+ dispatch(addRow(state2.tr, rect, rect.bottom));
36439
+ }
36440
+ return true;
36441
+ }
36442
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
36443
+ let rowPos = 0;
36444
+ for (let i2 = 0; i2 < row; i2++)
36445
+ rowPos += table.child(i2).nodeSize;
36446
+ const nextRow = rowPos + table.child(row).nodeSize;
36447
+ const mapFrom = tr2.mapping.maps.length;
36448
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
36449
+ const seen = /* @__PURE__ */ new Set();
36450
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36451
+ const pos = map4.map[index2];
36452
+ if (seen.has(pos))
36453
+ continue;
36454
+ seen.add(pos);
36455
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
36456
+ const attrs = table.nodeAt(pos).attrs;
36457
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36458
+ ...attrs,
36459
+ rowspan: attrs.rowspan - 1
36260
36460
  });
36261
- tr2.insert(
36262
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36263
- cell.type.createAndFill({
36264
- ...cell.attrs,
36265
- rowspan: cellTop + cell.attrs.rowspan - top2
36266
- })
36461
+ col += attrs.colspan - 1;
36462
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36463
+ const cell = table.nodeAt(pos);
36464
+ const attrs = cell.attrs;
36465
+ const copy2 = cell.type.create(
36466
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36467
+ cell.content
36267
36468
  );
36268
- col += cell.attrs.colspan - 1;
36469
+ const newPos = map4.positionAt(row + 1, col, table);
36470
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36471
+ col += attrs.colspan - 1;
36269
36472
  }
36270
36473
  }
36271
- return found2;
36272
36474
  }
36273
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36274
- if (left2 == 0 || left2 == map4.width)
36475
+ function deleteRow(state2, dispatch) {
36476
+ if (!isInTable(state2))
36275
36477
  return false;
36276
- let found2 = false;
36277
- for (let row = top2; row < bottom2; row++) {
36278
- const index2 = row * map4.width + left2, pos = map4.map[index2];
36279
- if (map4.map[index2 - 1] == pos) {
36280
- found2 = true;
36281
- const cell = table.nodeAt(pos);
36282
- const cellLeft = map4.colCount(pos);
36283
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36284
- tr2.setNodeMarkup(
36285
- updatePos,
36286
- null,
36287
- removeColSpan(
36288
- cell.attrs,
36289
- left2 - cellLeft,
36290
- cell.attrs.colspan - (left2 - cellLeft)
36291
- )
36292
- );
36293
- tr2.insert(
36294
- updatePos + cell.nodeSize,
36295
- cell.type.createAndFill(
36296
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
36297
- )
36298
- );
36299
- row += cell.attrs.rowspan - 1;
36478
+ if (dispatch) {
36479
+ const rect = selectedRect(state2), tr2 = state2.tr;
36480
+ if (rect.top == 0 && rect.bottom == rect.map.height)
36481
+ return false;
36482
+ for (let i2 = rect.bottom - 1; ; i2--) {
36483
+ removeRow(tr2, rect, i2);
36484
+ if (i2 == rect.top)
36485
+ break;
36486
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36487
+ if (!table) {
36488
+ throw RangeError("No table found");
36489
+ }
36490
+ rect.table = table;
36491
+ rect.map = TableMap.get(rect.table);
36300
36492
  }
36493
+ dispatch(tr2);
36301
36494
  }
36302
- return found2;
36495
+ return true;
36303
36496
  }
36304
- function insertCells(state2, dispatch, tableStart, rect, cells) {
36305
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36306
- if (!table) {
36307
- throw new Error("No table found");
36308
- }
36309
- let map4 = TableMap.get(table);
36310
- const { top: top2, left: left2 } = rect;
36311
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36312
- const tr2 = state2.tr;
36313
- let mapFrom = 0;
36314
- function recomp() {
36315
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36316
- if (!table) {
36317
- throw new Error("No table found");
36318
- }
36319
- map4 = TableMap.get(table);
36320
- mapFrom = tr2.mapping.maps.length;
36497
+ function isEmpty(cell) {
36498
+ const c2 = cell.content;
36499
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36500
+ }
36501
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36502
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36503
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36504
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36505
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36506
+ return true;
36507
+ indexLeft += width;
36508
+ indexRight += width;
36321
36509
  }
36322
- if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
36323
- recomp();
36324
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
36325
- recomp();
36326
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
36327
- recomp();
36328
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
36329
- recomp();
36330
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
36331
- recomp();
36332
- for (let row = top2; row < bottom2; row++) {
36333
- const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
36334
- tr2.replace(
36335
- tr2.mapping.slice(mapFrom).map(from2 + tableStart),
36336
- tr2.mapping.slice(mapFrom).map(to2 + tableStart),
36337
- new Slice(cells.rows[row - top2], 0, 0)
36338
- );
36510
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
36511
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36512
+ return true;
36513
+ indexTop++;
36514
+ indexBottom++;
36339
36515
  }
36340
- recomp();
36341
- tr2.setSelection(
36342
- new CellSelection(
36343
- tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
36344
- tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
36345
- )
36346
- );
36347
- dispatch(tr2);
36516
+ return false;
36348
36517
  }
36349
- var handleKeyDown$1 = keydownHandler({
36350
- ArrowLeft: arrow$3("horiz", -1),
36351
- ArrowRight: arrow$3("horiz", 1),
36352
- ArrowUp: arrow$3("vert", -1),
36353
- ArrowDown: arrow$3("vert", 1),
36354
- "Shift-ArrowLeft": shiftArrow("horiz", -1),
36355
- "Shift-ArrowRight": shiftArrow("horiz", 1),
36356
- "Shift-ArrowUp": shiftArrow("vert", -1),
36357
- "Shift-ArrowDown": shiftArrow("vert", 1),
36358
- Backspace: deleteCellSelection,
36359
- "Mod-Backspace": deleteCellSelection,
36360
- Delete: deleteCellSelection,
36361
- "Mod-Delete": deleteCellSelection
36362
- });
36363
- function maybeSetSelection(state2, dispatch, selection) {
36364
- if (selection.eq(state2.selection))
36518
+ function mergeCells(state2, dispatch) {
36519
+ const sel = state2.selection;
36520
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36365
36521
  return false;
36366
- if (dispatch)
36367
- dispatch(state2.tr.setSelection(selection).scrollIntoView());
36522
+ const rect = selectedRect(state2), { map: map4 } = rect;
36523
+ if (cellsOverlapRectangle(map4, rect))
36524
+ return false;
36525
+ if (dispatch) {
36526
+ const tr2 = state2.tr;
36527
+ const seen = {};
36528
+ let content = Fragment.empty;
36529
+ let mergedPos;
36530
+ let mergedCell;
36531
+ for (let row = rect.top; row < rect.bottom; row++) {
36532
+ for (let col = rect.left; col < rect.right; col++) {
36533
+ const cellPos = map4.map[row * map4.width + col];
36534
+ const cell = rect.table.nodeAt(cellPos);
36535
+ if (seen[cellPos] || !cell)
36536
+ continue;
36537
+ seen[cellPos] = true;
36538
+ if (mergedPos == null) {
36539
+ mergedPos = cellPos;
36540
+ mergedCell = cell;
36541
+ } else {
36542
+ if (!isEmpty(cell))
36543
+ content = content.append(cell.content);
36544
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36545
+ tr2.delete(mapped, mapped + cell.nodeSize);
36546
+ }
36547
+ }
36548
+ }
36549
+ if (mergedPos == null || mergedCell == null) {
36550
+ return true;
36551
+ }
36552
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36553
+ ...addColSpan(
36554
+ mergedCell.attrs,
36555
+ mergedCell.attrs.colspan,
36556
+ rect.right - rect.left - mergedCell.attrs.colspan
36557
+ ),
36558
+ rowspan: rect.bottom - rect.top
36559
+ });
36560
+ if (content.size) {
36561
+ const end2 = mergedPos + 1 + mergedCell.content.size;
36562
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36563
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36564
+ }
36565
+ tr2.setSelection(
36566
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36567
+ );
36568
+ dispatch(tr2);
36569
+ }
36368
36570
  return true;
36369
36571
  }
36370
- function arrow$3(axis2, dir) {
36371
- return (state2, dispatch, view) => {
36372
- if (!view)
36373
- return false;
36572
+ function splitCell(state2, dispatch) {
36573
+ const nodeTypes = tableNodeTypes(state2.schema);
36574
+ return splitCellWithType(({ node }) => {
36575
+ return nodeTypes[node.type.spec.tableRole];
36576
+ })(state2, dispatch);
36577
+ }
36578
+ function splitCellWithType(getCellType) {
36579
+ return (state2, dispatch) => {
36580
+ var _a2;
36374
36581
  const sel = state2.selection;
36375
- if (sel instanceof CellSelection) {
36376
- return maybeSetSelection(
36377
- state2,
36378
- dispatch,
36379
- Selection.near(sel.$headCell, dir)
36380
- );
36582
+ let cellNode;
36583
+ let cellPos;
36584
+ if (!(sel instanceof CellSelection)) {
36585
+ cellNode = cellWrapping(sel.$from);
36586
+ if (!cellNode)
36587
+ return false;
36588
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36589
+ } else {
36590
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
36591
+ return false;
36592
+ cellNode = sel.$anchorCell.nodeAfter;
36593
+ cellPos = sel.$anchorCell.pos;
36381
36594
  }
36382
- if (axis2 != "horiz" && !sel.empty)
36595
+ if (cellNode == null || cellPos == null) {
36383
36596
  return false;
36384
- const end2 = atEndOfCell(view, axis2, dir);
36385
- if (end2 == null)
36597
+ }
36598
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36386
36599
  return false;
36387
- if (axis2 == "horiz") {
36388
- return maybeSetSelection(
36389
- state2,
36390
- dispatch,
36391
- Selection.near(state2.doc.resolve(sel.head + dir), dir)
36600
+ }
36601
+ if (dispatch) {
36602
+ let baseAttrs = cellNode.attrs;
36603
+ const attrs = [];
36604
+ const colwidth = baseAttrs.colwidth;
36605
+ if (baseAttrs.rowspan > 1)
36606
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
36607
+ if (baseAttrs.colspan > 1)
36608
+ baseAttrs = { ...baseAttrs, colspan: 1 };
36609
+ const rect = selectedRect(state2), tr2 = state2.tr;
36610
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36611
+ attrs.push(
36612
+ colwidth ? {
36613
+ ...baseAttrs,
36614
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36615
+ } : baseAttrs
36616
+ );
36617
+ let lastCell;
36618
+ for (let row = rect.top; row < rect.bottom; row++) {
36619
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
36620
+ if (row == rect.top)
36621
+ pos += cellNode.nodeSize;
36622
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36623
+ if (col == rect.left && row == rect.top)
36624
+ continue;
36625
+ tr2.insert(
36626
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36627
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36628
+ );
36629
+ }
36630
+ }
36631
+ tr2.setNodeMarkup(
36632
+ cellPos,
36633
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36634
+ attrs[0]
36392
36635
  );
36393
- } else {
36394
- const $cell = state2.doc.resolve(end2);
36395
- const $next = nextCell($cell, axis2, dir);
36396
- let newSel;
36397
- if ($next)
36398
- newSel = Selection.near($next, 1);
36399
- else if (dir < 0)
36400
- newSel = Selection.near(state2.doc.resolve($cell.before(-1)), -1);
36636
+ if (sel instanceof CellSelection)
36637
+ tr2.setSelection(
36638
+ new CellSelection(
36639
+ tr2.doc.resolve(sel.$anchorCell.pos),
36640
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
36641
+ )
36642
+ );
36643
+ dispatch(tr2);
36644
+ }
36645
+ return true;
36646
+ };
36647
+ }
36648
+ function setCellAttr(name, value) {
36649
+ return function(state2, dispatch) {
36650
+ if (!isInTable(state2))
36651
+ return false;
36652
+ const $cell = selectionCell(state2);
36653
+ if ($cell.nodeAfter.attrs[name] === value)
36654
+ return false;
36655
+ if (dispatch) {
36656
+ const tr2 = state2.tr;
36657
+ if (state2.selection instanceof CellSelection)
36658
+ state2.selection.forEachCell((node, pos) => {
36659
+ if (node.attrs[name] !== value)
36660
+ tr2.setNodeMarkup(pos, null, {
36661
+ ...node.attrs,
36662
+ [name]: value
36663
+ });
36664
+ });
36401
36665
  else
36402
- newSel = Selection.near(state2.doc.resolve($cell.after(-1)), 1);
36403
- return maybeSetSelection(state2, dispatch, newSel);
36666
+ tr2.setNodeMarkup($cell.pos, null, {
36667
+ ...$cell.nodeAfter.attrs,
36668
+ [name]: value
36669
+ });
36670
+ dispatch(tr2);
36404
36671
  }
36672
+ return true;
36405
36673
  };
36406
36674
  }
36407
- function shiftArrow(axis2, dir) {
36408
- return (state2, dispatch, view) => {
36409
- if (!view)
36675
+ function deprecated_toggleHeader(type3) {
36676
+ return function(state2, dispatch) {
36677
+ if (!isInTable(state2))
36410
36678
  return false;
36411
- const sel = state2.selection;
36412
- let cellSel;
36413
- if (sel instanceof CellSelection) {
36414
- cellSel = sel;
36415
- } else {
36416
- const end2 = atEndOfCell(view, axis2, dir);
36417
- if (end2 == null)
36418
- return false;
36419
- cellSel = new CellSelection(state2.doc.resolve(end2));
36679
+ if (dispatch) {
36680
+ const types = tableNodeTypes(state2.schema);
36681
+ const rect = selectedRect(state2), tr2 = state2.tr;
36682
+ const cells = rect.map.cellsInRect(
36683
+ type3 == "column" ? {
36684
+ left: rect.left,
36685
+ top: 0,
36686
+ right: rect.right,
36687
+ bottom: rect.map.height
36688
+ } : type3 == "row" ? {
36689
+ left: 0,
36690
+ top: rect.top,
36691
+ right: rect.map.width,
36692
+ bottom: rect.bottom
36693
+ } : rect
36694
+ );
36695
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36696
+ for (let i2 = 0; i2 < cells.length; i2++)
36697
+ if (nodes[i2].type == types.header_cell)
36698
+ tr2.setNodeMarkup(
36699
+ rect.tableStart + cells[i2],
36700
+ types.cell,
36701
+ nodes[i2].attrs
36702
+ );
36703
+ if (tr2.steps.length == 0)
36704
+ for (let i2 = 0; i2 < cells.length; i2++)
36705
+ tr2.setNodeMarkup(
36706
+ rect.tableStart + cells[i2],
36707
+ types.header_cell,
36708
+ nodes[i2].attrs
36709
+ );
36710
+ dispatch(tr2);
36420
36711
  }
36421
- const $head = nextCell(cellSel.$headCell, axis2, dir);
36422
- if (!$head)
36712
+ return true;
36713
+ };
36714
+ }
36715
+ function isHeaderEnabledByType(type3, rect, types) {
36716
+ const cellPositions = rect.map.cellsInRect({
36717
+ left: 0,
36718
+ top: 0,
36719
+ right: type3 == "row" ? rect.map.width : 1,
36720
+ bottom: type3 == "column" ? rect.map.height : 1
36721
+ });
36722
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
36723
+ const cell = rect.table.nodeAt(cellPositions[i2]);
36724
+ if (cell && cell.type !== types.header_cell) {
36423
36725
  return false;
36424
- return maybeSetSelection(
36425
- state2,
36426
- dispatch,
36427
- new CellSelection(cellSel.$anchorCell, $head)
36428
- );
36726
+ }
36727
+ }
36728
+ return true;
36729
+ }
36730
+ function toggleHeader(type3, options) {
36731
+ options = options || { useDeprecatedLogic: false };
36732
+ if (options.useDeprecatedLogic)
36733
+ return deprecated_toggleHeader(type3);
36734
+ return function(state2, dispatch) {
36735
+ if (!isInTable(state2))
36736
+ return false;
36737
+ if (dispatch) {
36738
+ const types = tableNodeTypes(state2.schema);
36739
+ const rect = selectedRect(state2), tr2 = state2.tr;
36740
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36741
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
36742
+ "column",
36743
+ rect,
36744
+ types
36745
+ );
36746
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36747
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36748
+ const cellsRect = type3 == "column" ? {
36749
+ left: 0,
36750
+ top: selectionStartsAt,
36751
+ right: 1,
36752
+ bottom: rect.map.height
36753
+ } : type3 == "row" ? {
36754
+ left: selectionStartsAt,
36755
+ top: 0,
36756
+ right: rect.map.width,
36757
+ bottom: 1
36758
+ } : rect;
36759
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36760
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36761
+ const cellPos = relativeCellPos + rect.tableStart;
36762
+ const cell = tr2.doc.nodeAt(cellPos);
36763
+ if (cell) {
36764
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36765
+ }
36766
+ });
36767
+ dispatch(tr2);
36768
+ }
36769
+ return true;
36770
+ };
36771
+ }
36772
+ toggleHeader("row", {
36773
+ useDeprecatedLogic: true
36774
+ });
36775
+ toggleHeader("column", {
36776
+ useDeprecatedLogic: true
36777
+ });
36778
+ var toggleHeaderCell = toggleHeader("cell", {
36779
+ useDeprecatedLogic: true
36780
+ });
36781
+ function findNextCell($cell, dir) {
36782
+ if (dir < 0) {
36783
+ const before = $cell.nodeBefore;
36784
+ if (before)
36785
+ return $cell.pos - before.nodeSize;
36786
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36787
+ const rowNode = $cell.node(-1).child(row);
36788
+ const lastChild2 = rowNode.lastChild;
36789
+ if (lastChild2) {
36790
+ return rowEnd - 1 - lastChild2.nodeSize;
36791
+ }
36792
+ rowEnd -= rowNode.nodeSize;
36793
+ }
36794
+ } else {
36795
+ if ($cell.index() < $cell.parent.childCount - 1) {
36796
+ return $cell.pos + $cell.nodeAfter.nodeSize;
36797
+ }
36798
+ const table = $cell.node(-1);
36799
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36800
+ const rowNode = table.child(row);
36801
+ if (rowNode.childCount)
36802
+ return rowStart + 1;
36803
+ rowStart += rowNode.nodeSize;
36804
+ }
36805
+ }
36806
+ return null;
36807
+ }
36808
+ function goToNextCell(direction) {
36809
+ return function(state2, dispatch) {
36810
+ if (!isInTable(state2))
36811
+ return false;
36812
+ const cell = findNextCell(selectionCell(state2), direction);
36813
+ if (cell == null)
36814
+ return false;
36815
+ if (dispatch) {
36816
+ const $cell = state2.doc.resolve(cell);
36817
+ dispatch(
36818
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36819
+ );
36820
+ }
36821
+ return true;
36429
36822
  };
36430
36823
  }
36824
+ function deleteTable(state2, dispatch) {
36825
+ const $pos = state2.selection.$anchor;
36826
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
36827
+ const node = $pos.node(d2);
36828
+ if (node.type.spec.tableRole == "table") {
36829
+ if (dispatch)
36830
+ dispatch(
36831
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36832
+ );
36833
+ return true;
36834
+ }
36835
+ }
36836
+ return false;
36837
+ }
36431
36838
  function deleteCellSelection(state2, dispatch) {
36432
36839
  const sel = state2.selection;
36433
36840
  if (!(sel instanceof CellSelection))
@@ -36448,111 +36855,448 @@ function deleteCellSelection(state2, dispatch) {
36448
36855
  }
36449
36856
  return true;
36450
36857
  }
36451
- function handleTripleClick(view, pos) {
36452
- const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
36453
- if (!$cell)
36454
- return false;
36455
- view.dispatch(view.state.tr.setSelection(new CellSelection($cell)));
36456
- return true;
36457
- }
36458
- function handlePaste(view, _2, slice4) {
36459
- if (!isInTable(view.state))
36460
- return false;
36461
- let cells = pastedCells(slice4);
36462
- const sel = view.state.selection;
36463
- if (sel instanceof CellSelection) {
36464
- if (!cells)
36465
- cells = {
36466
- width: 1,
36467
- height: 1,
36468
- rows: [
36469
- Fragment.from(
36470
- fitSlice(tableNodeTypes(view.state.schema).cell, slice4)
36471
- )
36472
- ]
36473
- };
36474
- const table = sel.$anchorCell.node(-1);
36475
- const start2 = sel.$anchorCell.start(-1);
36476
- const rect = TableMap.get(table).rectBetween(
36477
- sel.$anchorCell.pos - start2,
36478
- sel.$headCell.pos - start2
36479
- );
36480
- cells = clipCells(cells, rect.right - rect.left, rect.bottom - rect.top);
36481
- insertCells(view.state, view.dispatch, start2, rect, cells);
36482
- return true;
36483
- } else if (cells) {
36484
- const $cell = selectionCell(view.state);
36485
- const start2 = $cell.start(-1);
36486
- insertCells(
36487
- view.state,
36488
- view.dispatch,
36489
- start2,
36490
- TableMap.get($cell.node(-1)).findCell($cell.pos - start2),
36491
- cells
36858
+ function pastedCells(slice4) {
36859
+ if (!slice4.size)
36860
+ return null;
36861
+ let { content, openStart, openEnd } = slice4;
36862
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36863
+ openStart--;
36864
+ openEnd--;
36865
+ content = content.child(0).content;
36866
+ }
36867
+ const first2 = content.child(0);
36868
+ const role = first2.type.spec.tableRole;
36869
+ const schema = first2.type.schema, rows = [];
36870
+ if (role == "row") {
36871
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36872
+ let cells = content.child(i2).content;
36873
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36874
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36875
+ if (left2 || right2)
36876
+ cells = fitSlice(
36877
+ tableNodeTypes(schema).row,
36878
+ new Slice(cells, left2, right2)
36879
+ ).content;
36880
+ rows.push(cells);
36881
+ }
36882
+ } else if (role == "cell" || role == "header_cell") {
36883
+ rows.push(
36884
+ openStart || openEnd ? fitSlice(
36885
+ tableNodeTypes(schema).row,
36886
+ new Slice(content, openStart, openEnd)
36887
+ ).content : content
36492
36888
  );
36493
- return true;
36494
36889
  } else {
36495
- return false;
36890
+ return null;
36496
36891
  }
36892
+ return ensureRectangular(schema, rows);
36497
36893
  }
36498
- function handleMouseDown(view, startEvent) {
36499
- var _a2;
36500
- if (startEvent.ctrlKey || startEvent.metaKey)
36501
- return;
36502
- const startDOMCell = domInCell(view, startEvent.target);
36503
- let $anchor;
36504
- if (startEvent.shiftKey && view.state.selection instanceof CellSelection) {
36505
- setCellSelection(view.state.selection.$anchorCell, startEvent);
36506
- startEvent.preventDefault();
36507
- } else if (startEvent.shiftKey && startDOMCell && ($anchor = cellAround(view.state.selection.$anchor)) != null && ((_a2 = cellUnderMouse(view, startEvent)) == null ? void 0 : _a2.pos) != $anchor.pos) {
36508
- setCellSelection($anchor, startEvent);
36509
- startEvent.preventDefault();
36510
- } else if (!startDOMCell) {
36511
- return;
36512
- }
36513
- function setCellSelection($anchor2, event) {
36514
- let $head = cellUnderMouse(view, event);
36515
- const starting = tableEditingKey.getState(view.state) == null;
36516
- if (!$head || !inSameTable($anchor2, $head)) {
36517
- if (starting)
36518
- $head = $anchor2;
36519
- else
36520
- return;
36521
- }
36522
- const selection = new CellSelection($anchor2, $head);
36523
- if (starting || !view.state.selection.eq(selection)) {
36524
- const tr2 = view.state.tr.setSelection(selection);
36525
- if (starting)
36526
- tr2.setMeta(tableEditingKey, $anchor2.pos);
36527
- view.dispatch(tr2);
36894
+ function ensureRectangular(schema, rows) {
36895
+ const widths = [];
36896
+ for (let i2 = 0; i2 < rows.length; i2++) {
36897
+ const row = rows[i2];
36898
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36899
+ const { rowspan, colspan } = row.child(j2).attrs;
36900
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36901
+ widths[r2] = (widths[r2] || 0) + colspan;
36528
36902
  }
36529
36903
  }
36530
- function stop() {
36531
- view.root.removeEventListener("mouseup", stop);
36532
- view.root.removeEventListener("dragstart", stop);
36533
- view.root.removeEventListener("mousemove", move);
36534
- if (tableEditingKey.getState(view.state) != null)
36535
- view.dispatch(view.state.tr.setMeta(tableEditingKey, -1));
36536
- }
36537
- function move(_event) {
36538
- const event = _event;
36539
- const anchor = tableEditingKey.getState(view.state);
36540
- let $anchor2;
36541
- if (anchor != null) {
36542
- $anchor2 = view.state.doc.resolve(anchor);
36543
- } else if (domInCell(view, event.target) != startDOMCell) {
36544
- $anchor2 = cellUnderMouse(view, startEvent);
36545
- if (!$anchor2)
36546
- return stop();
36904
+ let width = 0;
36905
+ for (let r2 = 0; r2 < widths.length; r2++)
36906
+ width = Math.max(width, widths[r2]);
36907
+ for (let r2 = 0; r2 < widths.length; r2++) {
36908
+ if (r2 >= rows.length)
36909
+ rows.push(Fragment.empty);
36910
+ if (widths[r2] < width) {
36911
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36912
+ const cells = [];
36913
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36914
+ cells.push(empty2);
36915
+ }
36916
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36547
36917
  }
36548
- if ($anchor2)
36549
- setCellSelection($anchor2, event);
36550
36918
  }
36551
- view.root.addEventListener("mouseup", stop);
36552
- view.root.addEventListener("dragstart", stop);
36553
- view.root.addEventListener("mousemove", move);
36919
+ return { height: rows.length, width, rows };
36554
36920
  }
36555
- function atEndOfCell(view, axis2, dir) {
36921
+ function fitSlice(nodeType, slice4) {
36922
+ const node = nodeType.createAndFill();
36923
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36924
+ return tr2.doc;
36925
+ }
36926
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
36927
+ if (width != newWidth) {
36928
+ const added = [];
36929
+ const newRows = [];
36930
+ for (let row = 0; row < rows.length; row++) {
36931
+ const frag = rows[row], cells = [];
36932
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36933
+ let cell = frag.child(i2 % frag.childCount);
36934
+ if (col + cell.attrs.colspan > newWidth)
36935
+ cell = cell.type.createChecked(
36936
+ removeColSpan(
36937
+ cell.attrs,
36938
+ cell.attrs.colspan,
36939
+ col + cell.attrs.colspan - newWidth
36940
+ ),
36941
+ cell.content
36942
+ );
36943
+ cells.push(cell);
36944
+ col += cell.attrs.colspan;
36945
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36946
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36947
+ }
36948
+ newRows.push(Fragment.from(cells));
36949
+ }
36950
+ rows = newRows;
36951
+ width = newWidth;
36952
+ }
36953
+ if (height != newHeight) {
36954
+ const newRows = [];
36955
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36956
+ const cells = [], source = rows[i2 % height];
36957
+ for (let j2 = 0; j2 < source.childCount; j2++) {
36958
+ let cell = source.child(j2);
36959
+ if (row + cell.attrs.rowspan > newHeight)
36960
+ cell = cell.type.create(
36961
+ {
36962
+ ...cell.attrs,
36963
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36964
+ },
36965
+ cell.content
36966
+ );
36967
+ cells.push(cell);
36968
+ }
36969
+ newRows.push(Fragment.from(cells));
36970
+ }
36971
+ rows = newRows;
36972
+ height = newHeight;
36973
+ }
36974
+ return { width, height, rows };
36975
+ }
36976
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36977
+ const schema = tr2.doc.type.schema;
36978
+ const types = tableNodeTypes(schema);
36979
+ let empty2;
36980
+ let emptyHead;
36981
+ if (width > map4.width) {
36982
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36983
+ const rowNode = table.child(row);
36984
+ rowEnd += rowNode.nodeSize;
36985
+ const cells = [];
36986
+ let add2;
36987
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36988
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
36989
+ else
36990
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36991
+ for (let i2 = map4.width; i2 < width; i2++)
36992
+ cells.push(add2);
36993
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36994
+ }
36995
+ }
36996
+ if (height > map4.height) {
36997
+ const cells = [];
36998
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36999
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
37000
+ cells.push(
37001
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
37002
+ );
37003
+ }
37004
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
37005
+ for (let i2 = map4.height; i2 < height; i2++)
37006
+ rows.push(emptyRow);
37007
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
37008
+ }
37009
+ return !!(empty2 || emptyHead);
37010
+ }
37011
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
37012
+ if (top2 == 0 || top2 == map4.height)
37013
+ return false;
37014
+ let found2 = false;
37015
+ for (let col = left2; col < right2; col++) {
37016
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
37017
+ if (map4.map[index2 - map4.width] == pos) {
37018
+ found2 = true;
37019
+ const cell = table.nodeAt(pos);
37020
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
37021
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
37022
+ ...cell.attrs,
37023
+ rowspan: top2 - cellTop
37024
+ });
37025
+ tr2.insert(
37026
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
37027
+ cell.type.createAndFill({
37028
+ ...cell.attrs,
37029
+ rowspan: cellTop + cell.attrs.rowspan - top2
37030
+ })
37031
+ );
37032
+ col += cell.attrs.colspan - 1;
37033
+ }
37034
+ }
37035
+ return found2;
37036
+ }
37037
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37038
+ if (left2 == 0 || left2 == map4.width)
37039
+ return false;
37040
+ let found2 = false;
37041
+ for (let row = top2; row < bottom2; row++) {
37042
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
37043
+ if (map4.map[index2 - 1] == pos) {
37044
+ found2 = true;
37045
+ const cell = table.nodeAt(pos);
37046
+ const cellLeft = map4.colCount(pos);
37047
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37048
+ tr2.setNodeMarkup(
37049
+ updatePos,
37050
+ null,
37051
+ removeColSpan(
37052
+ cell.attrs,
37053
+ left2 - cellLeft,
37054
+ cell.attrs.colspan - (left2 - cellLeft)
37055
+ )
37056
+ );
37057
+ tr2.insert(
37058
+ updatePos + cell.nodeSize,
37059
+ cell.type.createAndFill(
37060
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
37061
+ )
37062
+ );
37063
+ row += cell.attrs.rowspan - 1;
37064
+ }
37065
+ }
37066
+ return found2;
37067
+ }
37068
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
37069
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37070
+ if (!table) {
37071
+ throw new Error("No table found");
37072
+ }
37073
+ let map4 = TableMap.get(table);
37074
+ const { top: top2, left: left2 } = rect;
37075
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37076
+ const tr2 = state2.tr;
37077
+ let mapFrom = 0;
37078
+ function recomp() {
37079
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37080
+ if (!table) {
37081
+ throw new Error("No table found");
37082
+ }
37083
+ map4 = TableMap.get(table);
37084
+ mapFrom = tr2.mapping.maps.length;
37085
+ }
37086
+ if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37087
+ recomp();
37088
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
37089
+ recomp();
37090
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
37091
+ recomp();
37092
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
37093
+ recomp();
37094
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
37095
+ recomp();
37096
+ for (let row = top2; row < bottom2; row++) {
37097
+ const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
37098
+ tr2.replace(
37099
+ tr2.mapping.slice(mapFrom).map(from2 + tableStart),
37100
+ tr2.mapping.slice(mapFrom).map(to2 + tableStart),
37101
+ new Slice(cells.rows[row - top2], 0, 0)
37102
+ );
37103
+ }
37104
+ recomp();
37105
+ tr2.setSelection(
37106
+ new CellSelection(
37107
+ tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
37108
+ tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
37109
+ )
37110
+ );
37111
+ dispatch(tr2);
37112
+ }
37113
+ var handleKeyDown$1 = keydownHandler({
37114
+ ArrowLeft: arrow$3("horiz", -1),
37115
+ ArrowRight: arrow$3("horiz", 1),
37116
+ ArrowUp: arrow$3("vert", -1),
37117
+ ArrowDown: arrow$3("vert", 1),
37118
+ "Shift-ArrowLeft": shiftArrow("horiz", -1),
37119
+ "Shift-ArrowRight": shiftArrow("horiz", 1),
37120
+ "Shift-ArrowUp": shiftArrow("vert", -1),
37121
+ "Shift-ArrowDown": shiftArrow("vert", 1),
37122
+ Backspace: deleteCellSelection,
37123
+ "Mod-Backspace": deleteCellSelection,
37124
+ Delete: deleteCellSelection,
37125
+ "Mod-Delete": deleteCellSelection
37126
+ });
37127
+ function maybeSetSelection(state2, dispatch, selection) {
37128
+ if (selection.eq(state2.selection))
37129
+ return false;
37130
+ if (dispatch)
37131
+ dispatch(state2.tr.setSelection(selection).scrollIntoView());
37132
+ return true;
37133
+ }
37134
+ function arrow$3(axis2, dir) {
37135
+ return (state2, dispatch, view) => {
37136
+ if (!view)
37137
+ return false;
37138
+ const sel = state2.selection;
37139
+ if (sel instanceof CellSelection) {
37140
+ return maybeSetSelection(
37141
+ state2,
37142
+ dispatch,
37143
+ Selection.near(sel.$headCell, dir)
37144
+ );
37145
+ }
37146
+ if (axis2 != "horiz" && !sel.empty)
37147
+ return false;
37148
+ const end2 = atEndOfCell(view, axis2, dir);
37149
+ if (end2 == null)
37150
+ return false;
37151
+ if (axis2 == "horiz") {
37152
+ return maybeSetSelection(
37153
+ state2,
37154
+ dispatch,
37155
+ Selection.near(state2.doc.resolve(sel.head + dir), dir)
37156
+ );
37157
+ } else {
37158
+ const $cell = state2.doc.resolve(end2);
37159
+ const $next = nextCell($cell, axis2, dir);
37160
+ let newSel;
37161
+ if ($next)
37162
+ newSel = Selection.near($next, 1);
37163
+ else if (dir < 0)
37164
+ newSel = Selection.near(state2.doc.resolve($cell.before(-1)), -1);
37165
+ else
37166
+ newSel = Selection.near(state2.doc.resolve($cell.after(-1)), 1);
37167
+ return maybeSetSelection(state2, dispatch, newSel);
37168
+ }
37169
+ };
37170
+ }
37171
+ function shiftArrow(axis2, dir) {
37172
+ return (state2, dispatch, view) => {
37173
+ if (!view)
37174
+ return false;
37175
+ const sel = state2.selection;
37176
+ let cellSel;
37177
+ if (sel instanceof CellSelection) {
37178
+ cellSel = sel;
37179
+ } else {
37180
+ const end2 = atEndOfCell(view, axis2, dir);
37181
+ if (end2 == null)
37182
+ return false;
37183
+ cellSel = new CellSelection(state2.doc.resolve(end2));
37184
+ }
37185
+ const $head = nextCell(cellSel.$headCell, axis2, dir);
37186
+ if (!$head)
37187
+ return false;
37188
+ return maybeSetSelection(
37189
+ state2,
37190
+ dispatch,
37191
+ new CellSelection(cellSel.$anchorCell, $head)
37192
+ );
37193
+ };
37194
+ }
37195
+ function handleTripleClick(view, pos) {
37196
+ const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
37197
+ if (!$cell)
37198
+ return false;
37199
+ view.dispatch(view.state.tr.setSelection(new CellSelection($cell)));
37200
+ return true;
37201
+ }
37202
+ function handlePaste(view, _2, slice4) {
37203
+ if (!isInTable(view.state))
37204
+ return false;
37205
+ let cells = pastedCells(slice4);
37206
+ const sel = view.state.selection;
37207
+ if (sel instanceof CellSelection) {
37208
+ if (!cells)
37209
+ cells = {
37210
+ width: 1,
37211
+ height: 1,
37212
+ rows: [
37213
+ Fragment.from(
37214
+ fitSlice(tableNodeTypes(view.state.schema).cell, slice4)
37215
+ )
37216
+ ]
37217
+ };
37218
+ const table = sel.$anchorCell.node(-1);
37219
+ const start2 = sel.$anchorCell.start(-1);
37220
+ const rect = TableMap.get(table).rectBetween(
37221
+ sel.$anchorCell.pos - start2,
37222
+ sel.$headCell.pos - start2
37223
+ );
37224
+ cells = clipCells(cells, rect.right - rect.left, rect.bottom - rect.top);
37225
+ insertCells(view.state, view.dispatch, start2, rect, cells);
37226
+ return true;
37227
+ } else if (cells) {
37228
+ const $cell = selectionCell(view.state);
37229
+ const start2 = $cell.start(-1);
37230
+ insertCells(
37231
+ view.state,
37232
+ view.dispatch,
37233
+ start2,
37234
+ TableMap.get($cell.node(-1)).findCell($cell.pos - start2),
37235
+ cells
37236
+ );
37237
+ return true;
37238
+ } else {
37239
+ return false;
37240
+ }
37241
+ }
37242
+ function handleMouseDown(view, startEvent) {
37243
+ var _a2;
37244
+ if (startEvent.ctrlKey || startEvent.metaKey)
37245
+ return;
37246
+ const startDOMCell = domInCell(view, startEvent.target);
37247
+ let $anchor;
37248
+ if (startEvent.shiftKey && view.state.selection instanceof CellSelection) {
37249
+ setCellSelection(view.state.selection.$anchorCell, startEvent);
37250
+ startEvent.preventDefault();
37251
+ } else if (startEvent.shiftKey && startDOMCell && ($anchor = cellAround(view.state.selection.$anchor)) != null && ((_a2 = cellUnderMouse(view, startEvent)) == null ? void 0 : _a2.pos) != $anchor.pos) {
37252
+ setCellSelection($anchor, startEvent);
37253
+ startEvent.preventDefault();
37254
+ } else if (!startDOMCell) {
37255
+ return;
37256
+ }
37257
+ function setCellSelection($anchor2, event) {
37258
+ let $head = cellUnderMouse(view, event);
37259
+ const starting = tableEditingKey.getState(view.state) == null;
37260
+ if (!$head || !inSameTable($anchor2, $head)) {
37261
+ if (starting)
37262
+ $head = $anchor2;
37263
+ else
37264
+ return;
37265
+ }
37266
+ const selection = new CellSelection($anchor2, $head);
37267
+ if (starting || !view.state.selection.eq(selection)) {
37268
+ const tr2 = view.state.tr.setSelection(selection);
37269
+ if (starting)
37270
+ tr2.setMeta(tableEditingKey, $anchor2.pos);
37271
+ view.dispatch(tr2);
37272
+ }
37273
+ }
37274
+ function stop() {
37275
+ view.root.removeEventListener("mouseup", stop);
37276
+ view.root.removeEventListener("dragstart", stop);
37277
+ view.root.removeEventListener("mousemove", move);
37278
+ if (tableEditingKey.getState(view.state) != null)
37279
+ view.dispatch(view.state.tr.setMeta(tableEditingKey, -1));
37280
+ }
37281
+ function move(_event) {
37282
+ const event = _event;
37283
+ const anchor = tableEditingKey.getState(view.state);
37284
+ let $anchor2;
37285
+ if (anchor != null) {
37286
+ $anchor2 = view.state.doc.resolve(anchor);
37287
+ } else if (domInCell(view, event.target) != startDOMCell) {
37288
+ $anchor2 = cellUnderMouse(view, startEvent);
37289
+ if (!$anchor2)
37290
+ return stop();
37291
+ }
37292
+ if ($anchor2)
37293
+ setCellSelection($anchor2, event);
37294
+ }
37295
+ view.root.addEventListener("mouseup", stop);
37296
+ view.root.addEventListener("dragstart", stop);
37297
+ view.root.addEventListener("mousemove", move);
37298
+ }
37299
+ function atEndOfCell(view, axis2, dir) {
36556
37300
  if (!(view.state.selection instanceof TextSelection))
36557
37301
  return null;
36558
37302
  const { $head } = view.state.selection;
@@ -36586,28 +37330,37 @@ function cellUnderMouse(view, event) {
36586
37330
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
36587
37331
  }
36588
37332
  var TableView$1 = class TableView2 {
36589
- constructor(node, cellMinWidth) {
37333
+ constructor(node, defaultCellMinWidth) {
36590
37334
  this.node = node;
36591
- this.cellMinWidth = cellMinWidth;
37335
+ this.defaultCellMinWidth = defaultCellMinWidth;
36592
37336
  this.dom = document.createElement("div");
36593
37337
  this.dom.className = "tableWrapper";
36594
37338
  this.table = this.dom.appendChild(document.createElement("table"));
37339
+ this.table.style.setProperty(
37340
+ "--default-cell-min-width",
37341
+ `${defaultCellMinWidth}px`
37342
+ );
36595
37343
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
36596
- updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37344
+ updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36597
37345
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
36598
37346
  }
36599
37347
  update(node) {
36600
37348
  if (node.type != this.node.type)
36601
37349
  return false;
36602
37350
  this.node = node;
36603
- updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37351
+ updateColumnsOnResize(
37352
+ node,
37353
+ this.colgroup,
37354
+ this.table,
37355
+ this.defaultCellMinWidth
37356
+ );
36604
37357
  return true;
36605
37358
  }
36606
37359
  ignoreMutation(record) {
36607
37360
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
36608
37361
  }
36609
37362
  };
36610
- function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37363
+ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36611
37364
  var _a2;
36612
37365
  let totalWidth = 0;
36613
37366
  let fixedWidth = true;
@@ -36620,14 +37373,17 @@ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol,
36620
37373
  for (let j2 = 0; j2 < colspan; j2++, col++) {
36621
37374
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
36622
37375
  const cssWidth = hasWidth ? hasWidth + "px" : "";
36623
- totalWidth += hasWidth || cellMinWidth;
37376
+ totalWidth += hasWidth || defaultCellMinWidth;
36624
37377
  if (!hasWidth)
36625
37378
  fixedWidth = false;
36626
37379
  if (!nextDOM) {
36627
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37380
+ const col2 = document.createElement("col");
37381
+ col2.style.width = cssWidth;
37382
+ colgroup.appendChild(col2);
36628
37383
  } else {
36629
- if (nextDOM.style.width != cssWidth)
37384
+ if (nextDOM.style.width != cssWidth) {
36630
37385
  nextDOM.style.width = cssWidth;
37386
+ }
36631
37387
  nextDOM = nextDOM.nextSibling;
36632
37388
  }
36633
37389
  }
@@ -36651,6 +37407,7 @@ var columnResizingPluginKey = new PluginKey(
36651
37407
  function columnResizing({
36652
37408
  handleWidth = 5,
36653
37409
  cellMinWidth = 25,
37410
+ defaultCellMinWidth = 100,
36654
37411
  View = TableView$1,
36655
37412
  lastColumnResizable = true
36656
37413
  } = {}) {
@@ -36663,7 +37420,7 @@ function columnResizing({
36663
37420
  const tableName = tableNodeTypes(state2.schema).table.name;
36664
37421
  if (View && nodeViews) {
36665
37422
  nodeViews[tableName] = (node, view) => {
36666
- return new View(node, cellMinWidth, view);
37423
+ return new View(node, defaultCellMinWidth, view);
36667
37424
  };
36668
37425
  }
36669
37426
  return new ResizeState(-1, false);
@@ -36679,19 +37436,13 @@ function columnResizing({
36679
37436
  },
36680
37437
  handleDOMEvents: {
36681
37438
  mousemove: (view, event) => {
36682
- handleMouseMove(
36683
- view,
36684
- event,
36685
- handleWidth,
36686
- cellMinWidth,
36687
- lastColumnResizable
36688
- );
37439
+ handleMouseMove(view, event, handleWidth, lastColumnResizable);
36689
37440
  },
36690
37441
  mouseleave: (view) => {
36691
37442
  handleMouseLeave(view);
36692
37443
  },
36693
37444
  mousedown: (view, event) => {
36694
- handleMouseDown2(view, event, cellMinWidth);
37445
+ handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36695
37446
  }
36696
37447
  },
36697
37448
  decorations: (state2) => {
@@ -36727,7 +37478,7 @@ var ResizeState = class _ResizeState {
36727
37478
  return state2;
36728
37479
  }
36729
37480
  };
36730
- function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37481
+ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36731
37482
  const pluginState = columnResizingPluginKey.getState(view.state);
36732
37483
  if (!pluginState)
36733
37484
  return;
@@ -36741,729 +37492,205 @@ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResiz
36741
37492
  else if (right2 - event.clientX <= handleWidth)
36742
37493
  cell = edgeCell(view, event, "right", handleWidth);
36743
37494
  }
36744
- if (cell != pluginState.activeHandle) {
36745
- if (!lastColumnResizable && cell !== -1) {
36746
- const $cell = view.state.doc.resolve(cell);
36747
- const table = $cell.node(-1);
36748
- const map4 = TableMap.get(table);
36749
- const tableStart = $cell.start(-1);
36750
- const col = map4.colCount($cell.pos - tableStart) + $cell.nodeAfter.attrs.colspan - 1;
36751
- if (col == map4.width - 1) {
36752
- return;
36753
- }
36754
- }
36755
- updateHandle(view, cell);
36756
- }
36757
- }
36758
- }
36759
- function handleMouseLeave(view) {
36760
- const pluginState = columnResizingPluginKey.getState(view.state);
36761
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36762
- updateHandle(view, -1);
36763
- }
36764
- function handleMouseDown2(view, event, cellMinWidth) {
36765
- var _a2;
36766
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36767
- const pluginState = columnResizingPluginKey.getState(view.state);
36768
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36769
- return false;
36770
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36771
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36772
- view.dispatch(
36773
- view.state.tr.setMeta(columnResizingPluginKey, {
36774
- setDragging: { startX: event.clientX, startWidth: width }
36775
- })
36776
- );
36777
- function finish(event2) {
36778
- win.removeEventListener("mouseup", finish);
36779
- win.removeEventListener("mousemove", move);
36780
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36781
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36782
- updateColumnWidth(
36783
- view,
36784
- pluginState2.activeHandle,
36785
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36786
- );
36787
- view.dispatch(
36788
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36789
- );
36790
- }
36791
- }
36792
- function move(event2) {
36793
- if (!event2.which)
36794
- return finish(event2);
36795
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36796
- if (!pluginState2)
36797
- return;
36798
- if (pluginState2.dragging) {
36799
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36800
- displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36801
- }
36802
- }
36803
- win.addEventListener("mouseup", finish);
36804
- win.addEventListener("mousemove", move);
36805
- event.preventDefault();
36806
- return true;
36807
- }
36808
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
36809
- const width = colwidth && colwidth[colwidth.length - 1];
36810
- if (width)
36811
- return width;
36812
- const dom = view.domAtPos(cellPos);
36813
- const node = dom.node.childNodes[dom.offset];
36814
- let domWidth = node.offsetWidth, parts = colspan;
36815
- if (colwidth) {
36816
- for (let i2 = 0; i2 < colspan; i2++)
36817
- if (colwidth[i2]) {
36818
- domWidth -= colwidth[i2];
36819
- parts--;
36820
- }
36821
- }
36822
- return domWidth / parts;
36823
- }
36824
- function domCellAround(target) {
36825
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
36826
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36827
- return target;
36828
- }
36829
- function edgeCell(view, event, side, handleWidth) {
36830
- const offset2 = side == "right" ? -handleWidth : handleWidth;
36831
- const found2 = view.posAtCoords({
36832
- left: event.clientX + offset2,
36833
- top: event.clientY
36834
- });
36835
- if (!found2)
36836
- return -1;
36837
- const { pos } = found2;
36838
- const $cell = cellAround(view.state.doc.resolve(pos));
36839
- if (!$cell)
36840
- return -1;
36841
- if (side == "right")
36842
- return $cell.pos;
36843
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36844
- const index2 = map4.map.indexOf($cell.pos - start2);
36845
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36846
- }
36847
- function draggedWidth(dragging, event, cellMinWidth) {
36848
- const offset2 = event.clientX - dragging.startX;
36849
- return Math.max(cellMinWidth, dragging.startWidth + offset2);
36850
- }
36851
- function updateHandle(view, value) {
36852
- view.dispatch(
36853
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36854
- );
36855
- }
36856
- function updateColumnWidth(view, cell, width) {
36857
- const $cell = view.state.doc.resolve(cell);
36858
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36859
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36860
- const tr2 = view.state.tr;
36861
- for (let row = 0; row < map4.height; row++) {
36862
- const mapIndex = row * map4.width + col;
36863
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36864
- continue;
36865
- const pos = map4.map[mapIndex];
36866
- const attrs = table.nodeAt(pos).attrs;
36867
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36868
- if (attrs.colwidth && attrs.colwidth[index2] == width)
36869
- continue;
36870
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36871
- colwidth[index2] = width;
36872
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36873
- }
36874
- if (tr2.docChanged)
36875
- view.dispatch(tr2);
36876
- }
36877
- function displayColumnWidth(view, cell, width, cellMinWidth) {
36878
- const $cell = view.state.doc.resolve(cell);
36879
- const table = $cell.node(-1), start2 = $cell.start(-1);
36880
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36881
- let dom = view.domAtPos($cell.start(-1)).node;
36882
- while (dom && dom.nodeName != "TABLE") {
36883
- dom = dom.parentNode;
36884
- }
36885
- if (!dom)
36886
- return;
36887
- updateColumnsOnResize(
36888
- table,
36889
- dom.firstChild,
36890
- dom,
36891
- cellMinWidth,
36892
- col,
36893
- width
36894
- );
36895
- }
36896
- function zeroes(n2) {
36897
- return Array(n2).fill(0);
36898
- }
36899
- function handleDecorations(state2, cell) {
36900
- const decorations = [];
36901
- const $cell = state2.doc.resolve(cell);
36902
- const table = $cell.node(-1);
36903
- if (!table) {
36904
- return DecorationSet.empty;
36905
- }
36906
- const map4 = TableMap.get(table);
36907
- const start2 = $cell.start(-1);
36908
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36909
- for (let row = 0; row < map4.height; row++) {
36910
- const index2 = col + row * map4.width;
36911
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36912
- const cellPos = map4.map[index2];
36913
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36914
- const dom = document.createElement("div");
36915
- dom.className = "column-resize-handle";
36916
- decorations.push(Decoration.widget(pos, dom));
36917
- }
36918
- }
36919
- return DecorationSet.create(state2.doc, decorations);
36920
- }
36921
- function selectedRect(state2) {
36922
- const sel = state2.selection;
36923
- const $pos = selectionCell(state2);
36924
- const table = $pos.node(-1);
36925
- const tableStart = $pos.start(-1);
36926
- const map4 = TableMap.get(table);
36927
- const rect = sel instanceof CellSelection ? map4.rectBetween(
36928
- sel.$anchorCell.pos - tableStart,
36929
- sel.$headCell.pos - tableStart
36930
- ) : map4.findCell($pos.pos - tableStart);
36931
- return { ...rect, tableStart, map: map4, table };
36932
- }
36933
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
36934
- let refColumn = col > 0 ? -1 : 0;
36935
- if (columnIsHeader(map4, table, col + refColumn)) {
36936
- refColumn = col == 0 || col == map4.width ? null : 0;
36937
- }
36938
- for (let row = 0; row < map4.height; row++) {
36939
- const index2 = row * map4.width + col;
36940
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36941
- const pos = map4.map[index2];
36942
- const cell = table.nodeAt(pos);
36943
- tr2.setNodeMarkup(
36944
- tr2.mapping.map(tableStart + pos),
36945
- null,
36946
- addColSpan(cell.attrs, col - map4.colCount(pos))
36947
- );
36948
- row += cell.attrs.rowspan - 1;
36949
- } else {
36950
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36951
- const pos = map4.positionAt(row, col, table);
36952
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36953
- }
36954
- }
36955
- return tr2;
36956
- }
36957
- function addColumnBefore(state2, dispatch) {
36958
- if (!isInTable(state2))
36959
- return false;
36960
- if (dispatch) {
36961
- const rect = selectedRect(state2);
36962
- dispatch(addColumn(state2.tr, rect, rect.left));
36963
- }
36964
- return true;
36965
- }
36966
- function addColumnAfter(state2, dispatch) {
36967
- if (!isInTable(state2))
36968
- return false;
36969
- if (dispatch) {
36970
- const rect = selectedRect(state2);
36971
- dispatch(addColumn(state2.tr, rect, rect.right));
36972
- }
36973
- return true;
36974
- }
36975
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36976
- const mapStart = tr2.mapping.maps.length;
36977
- for (let row = 0; row < map4.height; ) {
36978
- const index2 = row * map4.width + col;
36979
- const pos = map4.map[index2];
36980
- const cell = table.nodeAt(pos);
36981
- const attrs = cell.attrs;
36982
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36983
- tr2.setNodeMarkup(
36984
- tr2.mapping.slice(mapStart).map(tableStart + pos),
36985
- null,
36986
- removeColSpan(attrs, col - map4.colCount(pos))
36987
- );
36988
- } else {
36989
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36990
- tr2.delete(start2, start2 + cell.nodeSize);
36991
- }
36992
- row += attrs.rowspan;
36993
- }
36994
- }
36995
- function deleteColumn(state2, dispatch) {
36996
- if (!isInTable(state2))
36997
- return false;
36998
- if (dispatch) {
36999
- const rect = selectedRect(state2);
37000
- const tr2 = state2.tr;
37001
- if (rect.left == 0 && rect.right == rect.map.width)
37002
- return false;
37003
- for (let i2 = rect.right - 1; ; i2--) {
37004
- removeColumn(tr2, rect, i2);
37005
- if (i2 == rect.left)
37006
- break;
37007
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37008
- if (!table) {
37009
- throw RangeError("No table found");
37010
- }
37011
- rect.table = table;
37012
- rect.map = TableMap.get(table);
37013
- }
37014
- dispatch(tr2);
37015
- }
37016
- return true;
37017
- }
37018
- function rowIsHeader(map4, table, row) {
37019
- var _a2;
37020
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
37021
- for (let col = 0; col < map4.width; col++)
37022
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37023
- return false;
37024
- return true;
37025
- }
37026
- function addRow(tr2, { map: map4, tableStart, table }, row) {
37027
- var _a2;
37028
- let rowPos = tableStart;
37029
- for (let i2 = 0; i2 < row; i2++)
37030
- rowPos += table.child(i2).nodeSize;
37031
- const cells = [];
37032
- let refRow = row > 0 ? -1 : 0;
37033
- if (rowIsHeader(map4, table, row + refRow))
37034
- refRow = row == 0 || row == map4.height ? null : 0;
37035
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37036
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37037
- const pos = map4.map[index2];
37038
- const attrs = table.nodeAt(pos).attrs;
37039
- tr2.setNodeMarkup(tableStart + pos, null, {
37040
- ...attrs,
37041
- rowspan: attrs.rowspan + 1
37042
- });
37043
- col += attrs.colspan - 1;
37044
- } else {
37045
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37046
- const node = type3 == null ? void 0 : type3.createAndFill();
37047
- if (node)
37048
- cells.push(node);
37049
- }
37050
- }
37051
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37052
- return tr2;
37053
- }
37054
- function addRowBefore(state2, dispatch) {
37055
- if (!isInTable(state2))
37056
- return false;
37057
- if (dispatch) {
37058
- const rect = selectedRect(state2);
37059
- dispatch(addRow(state2.tr, rect, rect.top));
37060
- }
37061
- return true;
37062
- }
37063
- function addRowAfter(state2, dispatch) {
37064
- if (!isInTable(state2))
37065
- return false;
37066
- if (dispatch) {
37067
- const rect = selectedRect(state2);
37068
- dispatch(addRow(state2.tr, rect, rect.bottom));
37069
- }
37070
- return true;
37071
- }
37072
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
37073
- let rowPos = 0;
37074
- for (let i2 = 0; i2 < row; i2++)
37075
- rowPos += table.child(i2).nodeSize;
37076
- const nextRow = rowPos + table.child(row).nodeSize;
37077
- const mapFrom = tr2.mapping.maps.length;
37078
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
37079
- const seen = /* @__PURE__ */ new Set();
37080
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37081
- const pos = map4.map[index2];
37082
- if (seen.has(pos))
37083
- continue;
37084
- seen.add(pos);
37085
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
37086
- const attrs = table.nodeAt(pos).attrs;
37087
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37088
- ...attrs,
37089
- rowspan: attrs.rowspan - 1
37090
- });
37091
- col += attrs.colspan - 1;
37092
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37093
- const cell = table.nodeAt(pos);
37094
- const attrs = cell.attrs;
37095
- const copy2 = cell.type.create(
37096
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37097
- cell.content
37098
- );
37099
- const newPos = map4.positionAt(row + 1, col, table);
37100
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37101
- col += attrs.colspan - 1;
37102
- }
37103
- }
37104
- }
37105
- function deleteRow(state2, dispatch) {
37106
- if (!isInTable(state2))
37107
- return false;
37108
- if (dispatch) {
37109
- const rect = selectedRect(state2), tr2 = state2.tr;
37110
- if (rect.top == 0 && rect.bottom == rect.map.height)
37111
- return false;
37112
- for (let i2 = rect.bottom - 1; ; i2--) {
37113
- removeRow(tr2, rect, i2);
37114
- if (i2 == rect.top)
37115
- break;
37116
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37117
- if (!table) {
37118
- throw RangeError("No table found");
37119
- }
37120
- rect.table = table;
37121
- rect.map = TableMap.get(rect.table);
37122
- }
37123
- dispatch(tr2);
37124
- }
37125
- return true;
37126
- }
37127
- function isEmpty(cell) {
37128
- const c2 = cell.content;
37129
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37130
- }
37131
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37132
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37133
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37134
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37135
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37136
- return true;
37137
- indexLeft += width;
37138
- indexRight += width;
37139
- }
37140
- for (let i2 = rect.left; i2 < rect.right; i2++) {
37141
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37142
- return true;
37143
- indexTop++;
37144
- indexBottom++;
37145
- }
37146
- return false;
37147
- }
37148
- function mergeCells(state2, dispatch) {
37149
- const sel = state2.selection;
37150
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37151
- return false;
37152
- const rect = selectedRect(state2), { map: map4 } = rect;
37153
- if (cellsOverlapRectangle(map4, rect))
37154
- return false;
37155
- if (dispatch) {
37156
- const tr2 = state2.tr;
37157
- const seen = {};
37158
- let content = Fragment.empty;
37159
- let mergedPos;
37160
- let mergedCell;
37161
- for (let row = rect.top; row < rect.bottom; row++) {
37162
- for (let col = rect.left; col < rect.right; col++) {
37163
- const cellPos = map4.map[row * map4.width + col];
37164
- const cell = rect.table.nodeAt(cellPos);
37165
- if (seen[cellPos] || !cell)
37166
- continue;
37167
- seen[cellPos] = true;
37168
- if (mergedPos == null) {
37169
- mergedPos = cellPos;
37170
- mergedCell = cell;
37171
- } else {
37172
- if (!isEmpty(cell))
37173
- content = content.append(cell.content);
37174
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37175
- tr2.delete(mapped, mapped + cell.nodeSize);
37176
- }
37177
- }
37178
- }
37179
- if (mergedPos == null || mergedCell == null) {
37180
- return true;
37181
- }
37182
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37183
- ...addColSpan(
37184
- mergedCell.attrs,
37185
- mergedCell.attrs.colspan,
37186
- rect.right - rect.left - mergedCell.attrs.colspan
37187
- ),
37188
- rowspan: rect.bottom - rect.top
37189
- });
37190
- if (content.size) {
37191
- const end2 = mergedPos + 1 + mergedCell.content.size;
37192
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37193
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37194
- }
37195
- tr2.setSelection(
37196
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37197
- );
37198
- dispatch(tr2);
37199
- }
37200
- return true;
37201
- }
37202
- function splitCell(state2, dispatch) {
37203
- const nodeTypes = tableNodeTypes(state2.schema);
37204
- return splitCellWithType(({ node }) => {
37205
- return nodeTypes[node.type.spec.tableRole];
37206
- })(state2, dispatch);
37207
- }
37208
- function splitCellWithType(getCellType) {
37209
- return (state2, dispatch) => {
37210
- var _a2;
37211
- const sel = state2.selection;
37212
- let cellNode;
37213
- let cellPos;
37214
- if (!(sel instanceof CellSelection)) {
37215
- cellNode = cellWrapping(sel.$from);
37216
- if (!cellNode)
37217
- return false;
37218
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37219
- } else {
37220
- if (sel.$anchorCell.pos != sel.$headCell.pos)
37221
- return false;
37222
- cellNode = sel.$anchorCell.nodeAfter;
37223
- cellPos = sel.$anchorCell.pos;
37224
- }
37225
- if (cellNode == null || cellPos == null) {
37226
- return false;
37227
- }
37228
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37229
- return false;
37230
- }
37231
- if (dispatch) {
37232
- let baseAttrs = cellNode.attrs;
37233
- const attrs = [];
37234
- const colwidth = baseAttrs.colwidth;
37235
- if (baseAttrs.rowspan > 1)
37236
- baseAttrs = { ...baseAttrs, rowspan: 1 };
37237
- if (baseAttrs.colspan > 1)
37238
- baseAttrs = { ...baseAttrs, colspan: 1 };
37239
- const rect = selectedRect(state2), tr2 = state2.tr;
37240
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37241
- attrs.push(
37242
- colwidth ? {
37243
- ...baseAttrs,
37244
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37245
- } : baseAttrs
37246
- );
37247
- let lastCell;
37248
- for (let row = rect.top; row < rect.bottom; row++) {
37249
- let pos = rect.map.positionAt(row, rect.left, rect.table);
37250
- if (row == rect.top)
37251
- pos += cellNode.nodeSize;
37252
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37253
- if (col == rect.left && row == rect.top)
37254
- continue;
37255
- tr2.insert(
37256
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37257
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37258
- );
37259
- }
37260
- }
37261
- tr2.setNodeMarkup(
37262
- cellPos,
37263
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37264
- attrs[0]
37265
- );
37266
- if (sel instanceof CellSelection)
37267
- tr2.setSelection(
37268
- new CellSelection(
37269
- tr2.doc.resolve(sel.$anchorCell.pos),
37270
- lastCell ? tr2.doc.resolve(lastCell) : void 0
37271
- )
37272
- );
37273
- dispatch(tr2);
37495
+ if (cell != pluginState.activeHandle) {
37496
+ if (!lastColumnResizable && cell !== -1) {
37497
+ const $cell = view.state.doc.resolve(cell);
37498
+ const table = $cell.node(-1);
37499
+ const map4 = TableMap.get(table);
37500
+ const tableStart = $cell.start(-1);
37501
+ const col = map4.colCount($cell.pos - tableStart) + $cell.nodeAfter.attrs.colspan - 1;
37502
+ if (col == map4.width - 1) {
37503
+ return;
37504
+ }
37505
+ }
37506
+ updateHandle(view, cell);
37274
37507
  }
37275
- return true;
37276
- };
37508
+ }
37277
37509
  }
37278
- function setCellAttr(name, value) {
37279
- return function(state2, dispatch) {
37280
- if (!isInTable(state2))
37281
- return false;
37282
- const $cell = selectionCell(state2);
37283
- if ($cell.nodeAfter.attrs[name] === value)
37284
- return false;
37285
- if (dispatch) {
37286
- const tr2 = state2.tr;
37287
- if (state2.selection instanceof CellSelection)
37288
- state2.selection.forEachCell((node, pos) => {
37289
- if (node.attrs[name] !== value)
37290
- tr2.setNodeMarkup(pos, null, {
37291
- ...node.attrs,
37292
- [name]: value
37293
- });
37294
- });
37295
- else
37296
- tr2.setNodeMarkup($cell.pos, null, {
37297
- ...$cell.nodeAfter.attrs,
37298
- [name]: value
37299
- });
37300
- dispatch(tr2);
37301
- }
37302
- return true;
37303
- };
37510
+ function handleMouseLeave(view) {
37511
+ const pluginState = columnResizingPluginKey.getState(view.state);
37512
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37513
+ updateHandle(view, -1);
37304
37514
  }
37305
- function deprecated_toggleHeader(type3) {
37306
- return function(state2, dispatch) {
37307
- if (!isInTable(state2))
37308
- return false;
37309
- if (dispatch) {
37310
- const types = tableNodeTypes(state2.schema);
37311
- const rect = selectedRect(state2), tr2 = state2.tr;
37312
- const cells = rect.map.cellsInRect(
37313
- type3 == "column" ? {
37314
- left: rect.left,
37315
- top: 0,
37316
- right: rect.right,
37317
- bottom: rect.map.height
37318
- } : type3 == "row" ? {
37319
- left: 0,
37320
- top: rect.top,
37321
- right: rect.map.width,
37322
- bottom: rect.bottom
37323
- } : rect
37515
+ function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37516
+ var _a2;
37517
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37518
+ const pluginState = columnResizingPluginKey.getState(view.state);
37519
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37520
+ return false;
37521
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37522
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37523
+ view.dispatch(
37524
+ view.state.tr.setMeta(columnResizingPluginKey, {
37525
+ setDragging: { startX: event.clientX, startWidth: width }
37526
+ })
37527
+ );
37528
+ function finish(event2) {
37529
+ win.removeEventListener("mouseup", finish);
37530
+ win.removeEventListener("mousemove", move);
37531
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37532
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37533
+ updateColumnWidth(
37534
+ view,
37535
+ pluginState2.activeHandle,
37536
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37537
+ );
37538
+ view.dispatch(
37539
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37324
37540
  );
37325
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37326
- for (let i2 = 0; i2 < cells.length; i2++)
37327
- if (nodes[i2].type == types.header_cell)
37328
- tr2.setNodeMarkup(
37329
- rect.tableStart + cells[i2],
37330
- types.cell,
37331
- nodes[i2].attrs
37332
- );
37333
- if (tr2.steps.length == 0)
37334
- for (let i2 = 0; i2 < cells.length; i2++)
37335
- tr2.setNodeMarkup(
37336
- rect.tableStart + cells[i2],
37337
- types.header_cell,
37338
- nodes[i2].attrs
37339
- );
37340
- dispatch(tr2);
37341
- }
37342
- return true;
37343
- };
37344
- }
37345
- function isHeaderEnabledByType(type3, rect, types) {
37346
- const cellPositions = rect.map.cellsInRect({
37347
- left: 0,
37348
- top: 0,
37349
- right: type3 == "row" ? rect.map.width : 1,
37350
- bottom: type3 == "column" ? rect.map.height : 1
37351
- });
37352
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
37353
- const cell = rect.table.nodeAt(cellPositions[i2]);
37354
- if (cell && cell.type !== types.header_cell) {
37355
- return false;
37356
37541
  }
37357
37542
  }
37358
- return true;
37359
- }
37360
- function toggleHeader(type3, options) {
37361
- options = options || { useDeprecatedLogic: false };
37362
- if (options.useDeprecatedLogic)
37363
- return deprecated_toggleHeader(type3);
37364
- return function(state2, dispatch) {
37365
- if (!isInTable(state2))
37366
- return false;
37367
- if (dispatch) {
37368
- const types = tableNodeTypes(state2.schema);
37369
- const rect = selectedRect(state2), tr2 = state2.tr;
37370
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37371
- const isHeaderColumnEnabled = isHeaderEnabledByType(
37372
- "column",
37373
- rect,
37374
- types
37543
+ function move(event2) {
37544
+ if (!event2.which)
37545
+ return finish(event2);
37546
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37547
+ if (!pluginState2)
37548
+ return;
37549
+ if (pluginState2.dragging) {
37550
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37551
+ displayColumnWidth(
37552
+ view,
37553
+ pluginState2.activeHandle,
37554
+ dragged,
37555
+ defaultCellMinWidth
37375
37556
  );
37376
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37377
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37378
- const cellsRect = type3 == "column" ? {
37379
- left: 0,
37380
- top: selectionStartsAt,
37381
- right: 1,
37382
- bottom: rect.map.height
37383
- } : type3 == "row" ? {
37384
- left: selectionStartsAt,
37385
- top: 0,
37386
- right: rect.map.width,
37387
- bottom: 1
37388
- } : rect;
37389
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37390
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37391
- const cellPos = relativeCellPos + rect.tableStart;
37392
- const cell = tr2.doc.nodeAt(cellPos);
37393
- if (cell) {
37394
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37395
- }
37396
- });
37397
- dispatch(tr2);
37398
37557
  }
37399
- return true;
37400
- };
37558
+ }
37559
+ displayColumnWidth(
37560
+ view,
37561
+ pluginState.activeHandle,
37562
+ width,
37563
+ defaultCellMinWidth
37564
+ );
37565
+ win.addEventListener("mouseup", finish);
37566
+ win.addEventListener("mousemove", move);
37567
+ event.preventDefault();
37568
+ return true;
37401
37569
  }
37402
- toggleHeader("row", {
37403
- useDeprecatedLogic: true
37404
- });
37405
- toggleHeader("column", {
37406
- useDeprecatedLogic: true
37407
- });
37408
- var toggleHeaderCell = toggleHeader("cell", {
37409
- useDeprecatedLogic: true
37410
- });
37411
- function findNextCell($cell, dir) {
37412
- if (dir < 0) {
37413
- const before = $cell.nodeBefore;
37414
- if (before)
37415
- return $cell.pos - before.nodeSize;
37416
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37417
- const rowNode = $cell.node(-1).child(row);
37418
- const lastChild2 = rowNode.lastChild;
37419
- if (lastChild2) {
37420
- return rowEnd - 1 - lastChild2.nodeSize;
37570
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
37571
+ const width = colwidth && colwidth[colwidth.length - 1];
37572
+ if (width)
37573
+ return width;
37574
+ const dom = view.domAtPos(cellPos);
37575
+ const node = dom.node.childNodes[dom.offset];
37576
+ let domWidth = node.offsetWidth, parts = colspan;
37577
+ if (colwidth) {
37578
+ for (let i2 = 0; i2 < colspan; i2++)
37579
+ if (colwidth[i2]) {
37580
+ domWidth -= colwidth[i2];
37581
+ parts--;
37421
37582
  }
37422
- rowEnd -= rowNode.nodeSize;
37423
- }
37424
- } else {
37425
- if ($cell.index() < $cell.parent.childCount - 1) {
37426
- return $cell.pos + $cell.nodeAfter.nodeSize;
37427
- }
37428
- const table = $cell.node(-1);
37429
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37430
- const rowNode = table.child(row);
37431
- if (rowNode.childCount)
37432
- return rowStart + 1;
37433
- rowStart += rowNode.nodeSize;
37434
- }
37435
37583
  }
37436
- return null;
37584
+ return domWidth / parts;
37437
37585
  }
37438
- function goToNextCell(direction) {
37439
- return function(state2, dispatch) {
37440
- if (!isInTable(state2))
37441
- return false;
37442
- const cell = findNextCell(selectionCell(state2), direction);
37443
- if (cell == null)
37444
- return false;
37445
- if (dispatch) {
37446
- const $cell = state2.doc.resolve(cell);
37447
- dispatch(
37448
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37449
- );
37450
- }
37451
- return true;
37452
- };
37586
+ function domCellAround(target) {
37587
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
37588
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37589
+ return target;
37453
37590
  }
37454
- function deleteTable(state2, dispatch) {
37455
- const $pos = state2.selection.$anchor;
37456
- for (let d2 = $pos.depth; d2 > 0; d2--) {
37457
- const node = $pos.node(d2);
37458
- if (node.type.spec.tableRole == "table") {
37459
- if (dispatch)
37460
- dispatch(
37461
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37591
+ function edgeCell(view, event, side, handleWidth) {
37592
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
37593
+ const found2 = view.posAtCoords({
37594
+ left: event.clientX + offset2,
37595
+ top: event.clientY
37596
+ });
37597
+ if (!found2)
37598
+ return -1;
37599
+ const { pos } = found2;
37600
+ const $cell = cellAround(view.state.doc.resolve(pos));
37601
+ if (!$cell)
37602
+ return -1;
37603
+ if (side == "right")
37604
+ return $cell.pos;
37605
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37606
+ const index2 = map4.map.indexOf($cell.pos - start2);
37607
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37608
+ }
37609
+ function draggedWidth(dragging, event, resizeMinWidth) {
37610
+ const offset2 = event.clientX - dragging.startX;
37611
+ return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37612
+ }
37613
+ function updateHandle(view, value) {
37614
+ view.dispatch(
37615
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37616
+ );
37617
+ }
37618
+ function updateColumnWidth(view, cell, width) {
37619
+ const $cell = view.state.doc.resolve(cell);
37620
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37621
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37622
+ const tr2 = view.state.tr;
37623
+ for (let row = 0; row < map4.height; row++) {
37624
+ const mapIndex = row * map4.width + col;
37625
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37626
+ continue;
37627
+ const pos = map4.map[mapIndex];
37628
+ const attrs = table.nodeAt(pos).attrs;
37629
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37630
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
37631
+ continue;
37632
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37633
+ colwidth[index2] = width;
37634
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37635
+ }
37636
+ if (tr2.docChanged)
37637
+ view.dispatch(tr2);
37638
+ }
37639
+ function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37640
+ const $cell = view.state.doc.resolve(cell);
37641
+ const table = $cell.node(-1), start2 = $cell.start(-1);
37642
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37643
+ let dom = view.domAtPos($cell.start(-1)).node;
37644
+ while (dom && dom.nodeName != "TABLE") {
37645
+ dom = dom.parentNode;
37646
+ }
37647
+ if (!dom)
37648
+ return;
37649
+ updateColumnsOnResize(
37650
+ table,
37651
+ dom.firstChild,
37652
+ dom,
37653
+ defaultCellMinWidth,
37654
+ col,
37655
+ width
37656
+ );
37657
+ }
37658
+ function zeroes(n2) {
37659
+ return Array(n2).fill(0);
37660
+ }
37661
+ function handleDecorations(state2, cell) {
37662
+ var _a2;
37663
+ const decorations = [];
37664
+ const $cell = state2.doc.resolve(cell);
37665
+ const table = $cell.node(-1);
37666
+ if (!table) {
37667
+ return DecorationSet.empty;
37668
+ }
37669
+ const map4 = TableMap.get(table);
37670
+ const start2 = $cell.start(-1);
37671
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37672
+ for (let row = 0; row < map4.height; row++) {
37673
+ const index2 = col + row * map4.width;
37674
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37675
+ const cellPos = map4.map[index2];
37676
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37677
+ const dom = document.createElement("div");
37678
+ dom.className = "column-resize-handle";
37679
+ if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37680
+ decorations.push(
37681
+ Decoration.node(
37682
+ start2 + cellPos,
37683
+ start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37684
+ {
37685
+ class: "column-resize-dragging"
37686
+ }
37687
+ )
37462
37688
  );
37463
- return true;
37689
+ }
37690
+ decorations.push(Decoration.widget(pos, dom));
37464
37691
  }
37465
37692
  }
37466
- return false;
37693
+ return DecorationSet.create(state2.doc, decorations);
37467
37694
  }
37468
37695
  function tableEditing({
37469
37696
  allowTableNodeSelection = false
@@ -37508,33 +37735,46 @@ function tableEditing({
37508
37735
  }
37509
37736
  });
37510
37737
  }
37738
+ function getColStyleDeclaration(minWidth, width) {
37739
+ if (width) {
37740
+ return ["width", `${Math.max(width, minWidth)}px`];
37741
+ }
37742
+ return ["min-width", `${minWidth}px`];
37743
+ }
37511
37744
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37745
+ var _a2;
37512
37746
  let totalWidth = 0;
37513
37747
  let fixedWidth = true;
37514
37748
  let nextDOM = colgroup.firstChild;
37515
37749
  const row = node.firstChild;
37516
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37517
- const { colspan, colwidth } = row.child(i2).attrs;
37518
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37519
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37520
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37521
- totalWidth += hasWidth || cellMinWidth;
37522
- if (!hasWidth) {
37523
- fixedWidth = false;
37524
- }
37525
- if (!nextDOM) {
37526
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37527
- } else {
37528
- if (nextDOM.style.width !== cssWidth) {
37529
- nextDOM.style.width = cssWidth;
37750
+ if (row !== null) {
37751
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37752
+ const { colspan, colwidth } = row.child(i2).attrs;
37753
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37754
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37755
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37756
+ totalWidth += hasWidth || cellMinWidth;
37757
+ if (!hasWidth) {
37758
+ fixedWidth = false;
37759
+ }
37760
+ if (!nextDOM) {
37761
+ const colElement = document.createElement("col");
37762
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37763
+ colElement.style.setProperty(propertyKey, propertyValue);
37764
+ colgroup.appendChild(colElement);
37765
+ } else {
37766
+ if (nextDOM.style.width !== cssWidth) {
37767
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37768
+ nextDOM.style.setProperty(propertyKey, propertyValue);
37769
+ }
37770
+ nextDOM = nextDOM.nextSibling;
37530
37771
  }
37531
- nextDOM = nextDOM.nextSibling;
37532
37772
  }
37533
37773
  }
37534
37774
  }
37535
37775
  while (nextDOM) {
37536
37776
  const after = nextDOM.nextSibling;
37537
- nextDOM.parentNode.removeChild(nextDOM);
37777
+ (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37538
37778
  nextDOM = after;
37539
37779
  }
37540
37780
  if (fixedWidth) {
@@ -37580,12 +37820,15 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37580
37820
  const { colspan, colwidth } = row.child(i2).attrs;
37581
37821
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37582
37822
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37583
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37584
37823
  totalWidth += hasWidth || cellMinWidth;
37585
37824
  if (!hasWidth) {
37586
37825
  fixedWidth = false;
37587
37826
  }
37588
- cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37827
+ const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37828
+ cols.push([
37829
+ "col",
37830
+ { style: `${property}: ${value}` }
37831
+ ]);
37589
37832
  }
37590
37833
  }
37591
37834
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -37794,6 +38037,7 @@ const Table = Node$1.create({
37794
38037
  columnResizing({
37795
38038
  handleWidth: this.options.handleWidth,
37796
38039
  cellMinWidth: this.options.cellMinWidth,
38040
+ defaultCellMinWidth: this.options.cellMinWidth,
37797
38041
  View: this.options.View,
37798
38042
  lastColumnResizable: this.options.lastColumnResizable
37799
38043
  })
@@ -37834,7 +38078,7 @@ const TableCell = Node$1.create({
37834
38078
  default: null,
37835
38079
  parseHTML: (element) => {
37836
38080
  const colwidth = element.getAttribute("colwidth");
37837
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38081
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37838
38082
  return value;
37839
38083
  }
37840
38084
  }
@@ -37871,7 +38115,7 @@ const TableHeader = Node$1.create({
37871
38115
  default: null,
37872
38116
  parseHTML: (element) => {
37873
38117
  const colwidth = element.getAttribute("colwidth");
37874
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38118
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37875
38119
  return value;
37876
38120
  }
37877
38121
  }
@@ -38188,6 +38432,10 @@ const Bold = Mark.create({
38188
38432
  tag: "b",
38189
38433
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38190
38434
  },
38435
+ {
38436
+ style: "font-weight=400",
38437
+ clearMark: (mark) => mark.type.name === this.name
38438
+ },
38191
38439
  {
38192
38440
  style: "font-weight",
38193
38441
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38241,73 +38489,8 @@ const Bold = Mark.create({
38241
38489
  ];
38242
38490
  }
38243
38491
  });
38244
- const ListItem$2 = Node$1.create({
38245
- name: "listItem",
38246
- addOptions() {
38247
- return {
38248
- HTMLAttributes: {},
38249
- bulletListTypeName: "bulletList",
38250
- orderedListTypeName: "orderedList"
38251
- };
38252
- },
38253
- content: "paragraph block*",
38254
- defining: true,
38255
- parseHTML() {
38256
- return [
38257
- {
38258
- tag: "li"
38259
- }
38260
- ];
38261
- },
38262
- renderHTML({ HTMLAttributes }) {
38263
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38264
- },
38265
- addKeyboardShortcuts() {
38266
- return {
38267
- Enter: () => this.editor.commands.splitListItem(this.name),
38268
- Tab: () => this.editor.commands.sinkListItem(this.name),
38269
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38270
- };
38271
- }
38272
- });
38273
- const TextStyle$1 = Mark.create({
38274
- name: "textStyle",
38275
- priority: 101,
38276
- addOptions() {
38277
- return {
38278
- HTMLAttributes: {}
38279
- };
38280
- },
38281
- parseHTML() {
38282
- return [
38283
- {
38284
- tag: "span",
38285
- getAttrs: (element) => {
38286
- const hasStyles = element.hasAttribute("style");
38287
- if (!hasStyles) {
38288
- return false;
38289
- }
38290
- return {};
38291
- }
38292
- }
38293
- ];
38294
- },
38295
- renderHTML({ HTMLAttributes }) {
38296
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38297
- },
38298
- addCommands() {
38299
- return {
38300
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38301
- const attributes = getMarkAttributes(state2, this.type);
38302
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38303
- if (hasStyles) {
38304
- return true;
38305
- }
38306
- return commands2.unsetMark(this.name);
38307
- }
38308
- };
38309
- }
38310
- });
38492
+ const ListItemName$1 = "listItem";
38493
+ const TextStyleName$1 = "textStyle";
38311
38494
  const inputRegex$3 = /^\s*([-+*])\s$/;
38312
38495
  const BulletList = Node$1.create({
38313
38496
  name: "bulletList",
@@ -38335,7 +38518,7 @@ const BulletList = Node$1.create({
38335
38518
  return {
38336
38519
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38337
38520
  if (this.options.keepAttributes) {
38338
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38521
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38339
38522
  }
38340
38523
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38341
38524
  }
@@ -38358,7 +38541,7 @@ const BulletList = Node$1.create({
38358
38541
  keepMarks: this.options.keepMarks,
38359
38542
  keepAttributes: this.options.keepAttributes,
38360
38543
  getAttributes: () => {
38361
- return this.editor.getAttributes(TextStyle$1.name);
38544
+ return this.editor.getAttributes(TextStyleName$1);
38362
38545
  },
38363
38546
  editor: this.editor
38364
38547
  });
@@ -38368,8 +38551,8 @@ const BulletList = Node$1.create({
38368
38551
  ];
38369
38552
  }
38370
38553
  });
38371
- const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38372
- const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38554
+ const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38555
+ const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38373
38556
  const Code = Mark.create({
38374
38557
  name: "code",
38375
38558
  addOptions() {
@@ -38996,6 +39179,7 @@ const HardBreak = Node$1.create({
38996
39179
  inline: true,
38997
39180
  group: "inline",
38998
39181
  selectable: false,
39182
+ linebreakReplacement: true,
38999
39183
  parseHTML() {
39000
39184
  return [
39001
39185
  { tag: "br" }
@@ -39757,6 +39941,10 @@ const Italic = Mark.create({
39757
39941
  tag: "i",
39758
39942
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39759
39943
  },
39944
+ {
39945
+ style: "font-style=normal",
39946
+ clearMark: (mark) => mark.type.name === this.name
39947
+ },
39760
39948
  {
39761
39949
  style: "font-style=italic"
39762
39950
  }
@@ -39809,35 +39997,6 @@ const Italic = Mark.create({
39809
39997
  ];
39810
39998
  }
39811
39999
  });
39812
- const ListItem$1 = Node$1.create({
39813
- name: "listItem",
39814
- addOptions() {
39815
- return {
39816
- HTMLAttributes: {},
39817
- bulletListTypeName: "bulletList",
39818
- orderedListTypeName: "orderedList"
39819
- };
39820
- },
39821
- content: "paragraph block*",
39822
- defining: true,
39823
- parseHTML() {
39824
- return [
39825
- {
39826
- tag: "li"
39827
- }
39828
- ];
39829
- },
39830
- renderHTML({ HTMLAttributes }) {
39831
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39832
- },
39833
- addKeyboardShortcuts() {
39834
- return {
39835
- Enter: () => this.editor.commands.splitListItem(this.name),
39836
- Tab: () => this.editor.commands.sinkListItem(this.name),
39837
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39838
- };
39839
- }
39840
- });
39841
40000
  const ListItem = Node$1.create({
39842
40001
  name: "listItem",
39843
40002
  addOptions() {
@@ -39867,44 +40026,8 @@ const ListItem = Node$1.create({
39867
40026
  };
39868
40027
  }
39869
40028
  });
39870
- const TextStyle = Mark.create({
39871
- name: "textStyle",
39872
- priority: 101,
39873
- addOptions() {
39874
- return {
39875
- HTMLAttributes: {}
39876
- };
39877
- },
39878
- parseHTML() {
39879
- return [
39880
- {
39881
- tag: "span",
39882
- getAttrs: (element) => {
39883
- const hasStyles = element.hasAttribute("style");
39884
- if (!hasStyles) {
39885
- return false;
39886
- }
39887
- return {};
39888
- }
39889
- }
39890
- ];
39891
- },
39892
- renderHTML({ HTMLAttributes }) {
39893
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39894
- },
39895
- addCommands() {
39896
- return {
39897
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39898
- const attributes = getMarkAttributes(state2, this.type);
39899
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39900
- if (hasStyles) {
39901
- return true;
39902
- }
39903
- return commands2.unsetMark(this.name);
39904
- }
39905
- };
39906
- }
39907
- });
40029
+ const ListItemName = "listItem";
40030
+ const TextStyleName = "textStyle";
39908
40031
  const inputRegex$1 = /^(\d+)\.\s$/;
39909
40032
  const OrderedList = Node$1.create({
39910
40033
  name: "orderedList",
@@ -39949,7 +40072,7 @@ const OrderedList = Node$1.create({
39949
40072
  return {
39950
40073
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
39951
40074
  if (this.options.keepAttributes) {
39952
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40075
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
39953
40076
  }
39954
40077
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
39955
40078
  }
@@ -39973,7 +40096,7 @@ const OrderedList = Node$1.create({
39973
40096
  type: this.type,
39974
40097
  keepMarks: this.options.keepMarks,
39975
40098
  keepAttributes: this.options.keepAttributes,
39976
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40099
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
39977
40100
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
39978
40101
  editor: this.editor
39979
40102
  });
@@ -40128,7 +40251,7 @@ const StarterKit = Extension.create({
40128
40251
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40129
40252
  }
40130
40253
  if (this.options.listItem !== false) {
40131
- extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40254
+ extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40132
40255
  }
40133
40256
  if (this.options.orderedList !== false) {
40134
40257
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42803,6 +42926,9 @@ class BubbleMenuView {
42803
42926
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42804
42927
  return;
42805
42928
  }
42929
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
42930
+ return;
42931
+ }
42806
42932
  this.hide();
42807
42933
  };
42808
42934
  this.tippyBlurHandler = (event) => {
@@ -42835,6 +42961,7 @@ class BubbleMenuView {
42835
42961
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42836
42962
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42837
42963
  editor: this.editor,
42964
+ element: this.element,
42838
42965
  view: view2,
42839
42966
  state: state2,
42840
42967
  oldState,
@@ -42849,12 +42976,14 @@ class BubbleMenuView {
42849
42976
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42850
42977
  if (isNodeSelection(state2.selection)) {
42851
42978
  let node = view2.nodeDOM(from2);
42852
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42853
- if (nodeViewWrapper) {
42854
- node = nodeViewWrapper.firstChild;
42855
- }
42856
42979
  if (node) {
42857
- return node.getBoundingClientRect();
42980
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42981
+ if (nodeViewWrapper) {
42982
+ node = nodeViewWrapper.firstChild;
42983
+ }
42984
+ if (node) {
42985
+ return node.getBoundingClientRect();
42986
+ }
42858
42987
  }
42859
42988
  }
42860
42989
  return posToDOMRect(view2, from2, to2);
@@ -42989,6 +43118,9 @@ class FloatingMenuView {
42989
43118
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42990
43119
  return;
42991
43120
  }
43121
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43122
+ return;
43123
+ }
42992
43124
  this.hide();
42993
43125
  };
42994
43126
  this.tippyBlurHandler = (event) => {
@@ -43249,21 +43381,8 @@ const EditorContent = vue.defineComponent({
43249
43381
  if (!editor) {
43250
43382
  return;
43251
43383
  }
43252
- if (!editor.isDestroyed) {
43253
- editor.view.setProps({
43254
- nodeViews: {}
43255
- });
43256
- }
43257
43384
  editor.contentComponent = null;
43258
43385
  editor.appContext = null;
43259
- if (!editor.options.element.firstChild) {
43260
- return;
43261
- }
43262
- const newElement = document.createElement("div");
43263
- newElement.append(...editor.options.element.childNodes);
43264
- editor.setOptions({
43265
- element: newElement
43266
- });
43267
43386
  });
43268
43387
  return { rootEl: rootEl2 };
43269
43388
  },
@@ -44391,7 +44510,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44391
44510
  });
44392
44511
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44393
44512
  /*!
44394
- * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44513
+ * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44395
44514
  * (c) 2024 Szymon Nowak | Released under the MIT license
44396
44515
  */
44397
44516
  class Point {
@@ -44475,7 +44594,7 @@ class SignatureEventTarget {
44475
44594
  constructor() {
44476
44595
  try {
44477
44596
  this._et = new EventTarget();
44478
- } catch (error) {
44597
+ } catch (_a2) {
44479
44598
  this._et = document;
44480
44599
  }
44481
44600
  }
@@ -44589,13 +44708,16 @@ class SignaturePad extends SignatureEventTarget {
44589
44708
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44590
44709
  };
44591
44710
  this._handlePointerDown = (event) => {
44592
- if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44711
+ if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44593
44712
  return;
44594
44713
  }
44595
44714
  event.preventDefault();
44596
44715
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44597
44716
  };
44598
44717
  this._handlePointerMove = (event) => {
44718
+ if (!event.isPrimary) {
44719
+ return;
44720
+ }
44599
44721
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44600
44722
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44601
44723
  return;
@@ -44604,7 +44726,7 @@ class SignaturePad extends SignatureEventTarget {
44604
44726
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44605
44727
  };
44606
44728
  this._handlePointerUp = (event) => {
44607
- if (this._isLeftButtonPressed(event)) {
44729
+ if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44608
44730
  return;
44609
44731
  }
44610
44732
  event.preventDefault();
@@ -48382,6 +48504,11 @@ function buildURL(url, params, options) {
48382
48504
  return url;
48383
48505
  }
48384
48506
  const _encode = options && options.encode || encode;
48507
+ if (utils$1.isFunction(options)) {
48508
+ options = {
48509
+ serialize: options
48510
+ };
48511
+ }
48385
48512
  const serializeFn = options && options.serialize;
48386
48513
  let serializedParams;
48387
48514
  if (serializeFn) {
@@ -48568,7 +48695,7 @@ function stringifySafely(rawValue, parser, encoder) {
48568
48695
  }
48569
48696
  }
48570
48697
  }
48571
- return (encoder || JSON.stringify)(rawValue);
48698
+ return (0, JSON.stringify)(rawValue);
48572
48699
  }
48573
48700
  const defaults = {
48574
48701
  transitional: transitionalDefaults,
@@ -49061,45 +49188,13 @@ const progressEventDecorator = (total, throttled) => {
49061
49188
  }), throttled[1]];
49062
49189
  };
49063
49190
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49064
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49065
- // Standard browser envs have full support of the APIs needed to test
49066
- // whether the request URL is of the same origin as current location.
49067
- function standardBrowserEnv() {
49068
- const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49069
- const urlParsingNode = document.createElement("a");
49070
- let originURL;
49071
- function resolveURL(url) {
49072
- let href = url;
49073
- if (msie) {
49074
- urlParsingNode.setAttribute("href", href);
49075
- href = urlParsingNode.href;
49076
- }
49077
- urlParsingNode.setAttribute("href", href);
49078
- return {
49079
- href: urlParsingNode.href,
49080
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49081
- host: urlParsingNode.host,
49082
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49083
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49084
- hostname: urlParsingNode.hostname,
49085
- port: urlParsingNode.port,
49086
- pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49087
- };
49088
- }
49089
- originURL = resolveURL(window.location.href);
49090
- return function isURLSameOrigin2(requestURL) {
49091
- const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49092
- return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49093
- };
49094
- }()
49095
- ) : (
49096
- // Non standard browser envs (web workers, react-native) lack needed support.
49097
- /* @__PURE__ */ function nonStandardBrowserEnv() {
49098
- return function isURLSameOrigin2() {
49099
- return true;
49100
- };
49101
- }()
49102
- );
49191
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49192
+ url = new URL(url, platform.origin);
49193
+ return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49194
+ })(
49195
+ new URL(platform.origin),
49196
+ platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49197
+ ) : () => true;
49103
49198
  const cookies = platform.hasStandardBrowserEnv ? (
49104
49199
  // Standard browser envs support document.cookie
49105
49200
  {
@@ -49147,7 +49242,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49147
49242
  function mergeConfig(config1, config2) {
49148
49243
  config2 = config2 || {};
49149
49244
  const config = {};
49150
- function getMergedValue(target, source, caseless) {
49245
+ function getMergedValue(target, source, prop3, caseless) {
49151
49246
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49152
49247
  return utils$1.merge.call({ caseless }, target, source);
49153
49248
  } else if (utils$1.isPlainObject(source)) {
@@ -49157,11 +49252,11 @@ function mergeConfig(config1, config2) {
49157
49252
  }
49158
49253
  return source;
49159
49254
  }
49160
- function mergeDeepProperties(a2, b2, caseless) {
49255
+ function mergeDeepProperties(a2, b2, prop3, caseless) {
49161
49256
  if (!utils$1.isUndefined(b2)) {
49162
- return getMergedValue(a2, b2, caseless);
49257
+ return getMergedValue(a2, b2, prop3, caseless);
49163
49258
  } else if (!utils$1.isUndefined(a2)) {
49164
- return getMergedValue(void 0, a2, caseless);
49259
+ return getMergedValue(void 0, a2, prop3, caseless);
49165
49260
  }
49166
49261
  }
49167
49262
  function valueFromConfig2(a2, b2) {
@@ -49212,7 +49307,7 @@ function mergeConfig(config1, config2) {
49212
49307
  socketPath: defaultToConfig2,
49213
49308
  responseEncoding: defaultToConfig2,
49214
49309
  validateStatus: mergeDirectKeys,
49215
- headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49310
+ headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49216
49311
  };
49217
49312
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49218
49313
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49412,7 +49507,7 @@ const composeSignals = (signals, timeout) => {
49412
49507
  };
49413
49508
  const streamChunk = function* (chunk, chunkSize) {
49414
49509
  let len = chunk.byteLength;
49415
- if (!chunkSize || len < chunkSize) {
49510
+ if (len < chunkSize) {
49416
49511
  yield chunk;
49417
49512
  return;
49418
49513
  }
@@ -49742,7 +49837,7 @@ function dispatchRequest(config) {
49742
49837
  return Promise.reject(reason);
49743
49838
  });
49744
49839
  }
49745
- const VERSION = "1.7.7";
49840
+ const VERSION = "1.7.9";
49746
49841
  const validators$1 = {};
49747
49842
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49748
49843
  validators$1[type3] = function validator2(thing) {
@@ -49773,6 +49868,12 @@ validators$1.transitional = function transitional(validator2, version2, message2
49773
49868
  return validator2 ? validator2(value, opt, opts) : true;
49774
49869
  };
49775
49870
  };
49871
+ validators$1.spelling = function spelling(correctSpelling) {
49872
+ return (value, opt) => {
49873
+ console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49874
+ return true;
49875
+ };
49876
+ };
49776
49877
  function assertOptions(options, schema, allowUnknown) {
49777
49878
  if (typeof options !== "object") {
49778
49879
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49821,8 +49922,8 @@ class Axios {
49821
49922
  return await this._request(configOrUrl, config);
49822
49923
  } catch (err) {
49823
49924
  if (err instanceof Error) {
49824
- let dummy;
49825
- Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
49925
+ let dummy = {};
49926
+ Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49826
49927
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49827
49928
  try {
49828
49929
  if (!err.stack) {
@@ -49864,6 +49965,10 @@ class Axios {
49864
49965
  }, true);
49865
49966
  }
49866
49967
  }
49968
+ validator.assertOptions(config, {
49969
+ baseUrl: validators.spelling("baseURL"),
49970
+ withXsrfToken: validators.spelling("withXSRFToken")
49971
+ }, true);
49867
49972
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49868
49973
  let contextHeaders = headers && utils$1.merge(
49869
49974
  headers.common,
@@ -50160,7 +50265,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50160
50265
  axios$1.getAdapter = adapters.getAdapter;
50161
50266
  axios$1.HttpStatusCode = HttpStatusCode;
50162
50267
  axios$1.default = axios$1;
50163
- 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}"]]] } };
50268
+ 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}"]]] } };
50164
50269
  function withMetadataArgument(func, _arguments) {
50165
50270
  var args = Array.prototype.slice.call(_arguments);
50166
50271
  args.push(metadata);
@@ -51773,9 +51878,8 @@ function _arrayLikeToArray$1(arr, len) {
51773
51878
  return arr2;
51774
51879
  }
51775
51880
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51776
- var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51881
+ var countries = _ref.countries, metadata2 = _ref.metadata;
51777
51882
  metadata2 = new Metadata(metadata2);
51778
- var matchingCountries = [];
51779
51883
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51780
51884
  var country = _step.value;
51781
51885
  metadata2.country(country);
@@ -51787,19 +51891,9 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51787
51891
  phone: nationalPhoneNumber,
51788
51892
  country
51789
51893
  }, void 0, metadata2.metadata)) {
51790
- if (defaultCountry) {
51791
- if (country === defaultCountry) {
51792
- return country;
51793
- }
51794
- matchingCountries.push(country);
51795
- } else {
51796
- return country;
51797
- }
51894
+ return country;
51798
51895
  }
51799
51896
  }
51800
- if (matchingCountries.length > 0) {
51801
- return matchingCountries[0];
51802
- }
51803
51897
  }
51804
51898
  function getCountryByCallingCode(callingCode, _ref) {
51805
51899
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
@@ -54565,7 +54659,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
54565
54659
  emits: /* @__PURE__ */ vue.mergeModels(["update:selectedItems", "orderBy", "select", "lastItemVisible"], ["update:loading", "update:itemHeight", "update:selectedItems"]),
54566
54660
  setup(__props, { emit: __emit }) {
54567
54661
  vue.useCssVars((_ctx) => ({
54568
- "2c584721": vue.unref(computedItemHeight)
54662
+ "44de596f": vue.unref(computedItemHeight)
54569
54663
  }));
54570
54664
  const emit2 = __emit;
54571
54665
  const slots = vue.useSlots();
@@ -54691,11 +54785,18 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
54691
54785
  if (entry.isIntersecting && computedData.value.length) {
54692
54786
  void ((_a2 = __props.onLastItemVisible) == null ? void 0 : _a2.call(__props));
54693
54787
  }
54694
- });
54788
+ }, { threshold: 0.5 });
54695
54789
  }
54696
54790
  vue.onMounted(() => {
54697
54791
  void registerLastItemObserver();
54698
54792
  });
54793
+ vue.watch(
54794
+ () => loading.value,
54795
+ (newLoadingVal, oldLoadingVal) => {
54796
+ if (newLoadingVal === oldLoadingVal) return;
54797
+ if (!newLoadingVal) registerLastItemObserver();
54798
+ }
54799
+ );
54699
54800
  return (_ctx, _cache) => {
54700
54801
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: "table-list-wrap h-100" }, vue.unref(containerProps), {
54701
54802
  class: { "loading-table": loading.value }
@@ -54789,7 +54890,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
54789
54890
  };
54790
54891
  }
54791
54892
  });
54792
- const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-bcd5ff3e"]]);
54893
+ const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-3dbd30bd"]]);
54793
54894
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
54794
54895
  __name: "Title",
54795
54896
  props: {